You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@vcl.apache.org by bu...@apache.org on 2013/01/08 17:38:17 UTC

svn commit: r845507 [11/17] - in /websites/staging/vcl/trunk/content: ./ confluence_export/

Added: websites/staging/vcl/trunk/content/confluence_export/modularized-architecture.html
==============================================================================
--- websites/staging/vcl/trunk/content/confluence_export/modularized-architecture.html (added)
+++ websites/staging/vcl/trunk/content/confluence_export/modularized-architecture.html Tue Jan  8 16:38:15 2013
@@ -0,0 +1,304 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE- 2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+
+  <link href="/css/vcl.css" rel="stylesheet" type="text/css">
+  <link href="/css/code.css" rel="stylesheet" type="text/css">
+  <title>Apache VCL - Modularized Architecture</title>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+
+<body>
+  <div id="sitetitle">
+    <table width="100%" border="0" cellspacing="0" cellpadding="5">
+      <tr>
+         <td><a href="/index.html"><img src="/img/vcl-logo.png" height="100" align="left" alt="Apache VCL logo"></a></td>
+         <td><a href="http://www.apache.org"><img src="/img/asf-logo.png" align="right" alt="Apache Software Foundation logo"></a></td>
+      </tr>
+    </table>
+  </div>
+
+  <div id="navigation"> 
+  <ul>
+<li>Information<ul>
+<li><a href="/info/about.html">What is VCL?</a></li>
+<li><a href="/info/features.html">Features</a></li>
+<li><a href="/info/architecture.html">Architecture</a></li>
+<li><a href="/info/use-cases.html">Use Cases</a></li>
+<li><a href="/downloads/download.cgi">Download</a></li>
+<li><a href="http://www.apache.org/licenses/LICENSE-2.0.html">License</a></li>
+<li><a href="/info/faq.html">FAQ</a></li>
+</ul>
+</li>
+<li><a href="/docs/index.html">Documentation</a><ul>
+<li><a href="/docs/using-vcl.html">Using VCL</a></li>
+<li><a href="/docs/image-creation.html">Image Creation</a></li>
+<li><a href="/docs/administration.html">Administration</a></li>
+<li><a href="/docs/installation.html">Installation</a></li>
+<li><a href="/docs/deployment-planning.html">Deployment Planning</a></li>
+</ul>
+</li>
+<li><a href="/comm/index.html">Community</a><ul>
+<li><a href="/comm/index.html#getInvolved">Getting Involved</a></li>
+<li><a href="/comm/index.html#mail-list">Mailing Lists</a></li>
+<li><a href="/comm/index.html#how-do-i-join-the-project">How can I Join</a></li>
+<li><a href="/comm/wiki.html">Wiki</a></li>
+<li><a href="/dev/index.html">Development</a><ul>
+<li><a href="/dev/jira.html">Issue Tracking</a></li>
+<li><a href="/dev/code-documentation.html">Code Documentation</a></li>
+<li><a href="/dev/roadmap.html">Roadmap</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a href="http://www.apache.org">Apache Software Foundation</a><ul>
+<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+<li><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
+</ul>
+</li>
+</ul>
+  </div>
+  
+  <div id="content">
+    <h1 class="title">Modularized Architecture</h1>
+    <p><a name="ModularizedArchitecture-Background"></a></p>
+<h1 id="background">Background</h1>
+<p>The VCL backend code was significantly reworked in version 2.0
+to&nbsp;utilize a&nbsp;"modularized" framework.&nbsp; This framework allows
+certain parts of the code to be separated from the core code through the
+implementation of modules.</p>
+<p>VCL interacts with external technologies including:
+<em> provisioning engines
+</em> operating systems
+* monitoring utilities</p>
+<p>The technology being used may vary based on the VCL deployment, management
+node, image, computer, and so on.&nbsp; Modules make configuring VCL to use
+a certain technology easy while simplifying the core code.</p>
+<p>The advantages of implementing modules are not limited to external
+technologies.&nbsp;&nbsp;Modules may be implemented for functions
+applicable only to VCL, but may vary based on the environment.&nbsp; For
+example, research is being conducted to compare different algorithms
+which&nbsp;are used to select the image that is loaded on a computer after
+a reservation is complete.&nbsp; A module is created for each algorithm,
+and configuring a management node to use a certain algorithm is as simple
+as changing one value in the database.</p>
+<p><a name="ModularizedArchitecture-ObjectOrientationandInheritance"></a></p>
+<h2 id="object-orientation-and-inheritance">Object Orientation and Inheritance</h2>
+<p>Object orientation and inheritance are used in the VCL modular framework,
+allowing modules to access functionality from&nbsp;the classes which they
+inherit from.&nbsp; This relieves module developers from having
+to&nbsp;worry about many&nbsp;underlying details and reduces code
+duplication.</p>
+<p>The following diagram shows how inheritance is organized:
+!inheritance.jpg|align=center!
+<em>Figure: VCL module inheritance organization</em>
+&nbsp;&nbsp;A few notes about the diagram:
+<em> The yellow modules represent the core VCL modules
+</em> The blue and green modules represent auxiliary modules
+<em> Core&nbsp;modules that should not need to be changed regardless of the
+auxiliary modules being used
+</em> The core modules provide many functions to the auxiliary modules
+including:
+<strong> default constructors
+</strong> data access
+<strong> module initialization
+</strong> access to&nbsp;other auxiliary modules where appropriate</p>
+<p>{color:#6600ff}{<em>}Explain:</em>{color}
+<em> {color:#6600ff}{<em>}abstract and concrete classes - abstract are not
+instantiated{</em>}{color}</em> {color:#6600ff}{<em>}classes can be empty, contain no subs, but act as a
+placeholder in case it's decided later on that a sub would be
+useful{</em>}{color}{color:#6600ff}&nbsp;{color}</p>
+<p><a name="ModularizedArchitecture-Advantages"></a></p>
+<h2 id="advantages">Advantages</h2>
+<ul>
+<li>Modules make it easier for developers to implement new technologies to be
+used with VCL&nbsp;easily</li>
+<li>Core VCL code does not need to be altered in order to support additional
+technologies or functionality</li>
+<li>Increased flexibility for different configurations</li>
+<li>Consistent methods to access data stored in the database</li>
+<li>Code maintainability is increased because each module focuses on a
+distinct task and the core code does not need to check for numerous
+different conditions based on the technology being used</li>
+</ul>
+<p>{color:#6600ff}{<em>}Explain:&nbsp;</em>{color}
+<em> {color:#6600ff}{<em>}more about benefits of inheritance{</em>}{color}</em> {color:#6600ff}{<em>}give OS example and include diagram{</em>}{color}
+<strong> {color:#6600ff}{<em>}Windows - Desktop - XP - Vista{</em>}{color}</strong> {color:#6600ff}{<em>}implement subs as high up as possible so child classes
+inherit them{</em>}{color}
+<strong> {color:#6600ff}{<em>}child classes can override an inherited sub if it
+doesn't fit its needs{</em>}{color}</strong> {color:#6600ff}{<em>}use example of firewalls in Windows.&nbsp; Windows.pm
+implements a firewall sub which works for everything but Vista.&nbsp;
+Vista.pm can implement a sub with the same name and it will override the
+one in Windows.pm, yet Vista.pm still enjoys everthing else Windows.pm
+offers.</em>{color}</p>
+<p><a name="ModularizedArchitecture-CoreModules"></a></p>
+<h1 id="core-modules">Core Modules</h1>
+<p>&nbsp;&nbsp;{color:#6600ff}{<em>}Explain:</em>{color}
+<em> {color:#6600ff}{<em>}only core modules should ever change the request
+state/laststate/computer state{</em>}{color}</em> {color:#6600ff}{<em>}only core modules should change anything in the request
+and rsvp tables{</em>}{color}
+<em> {color:#6600ff}{<em>}provide state flow{</em>}{color}</em> {color:#6600ff}{<em>}provide data access{</em>}{color}
+<em> {color:#6600ff}{<em>}provide utility functions&nbsp;</em>{color}</em> {color:#6600ff}{<em>}database and data structure are abstracted from
+auxiliary modules{</em>}{color}
+* {color:#6600ff}{<em>}ongoing - should not contain code specific to something
+that can be modularized such as "if windows... else linux..."</em>{color}</p>
+<p><a name="ModularizedArchitecture-vcld(VCL::vcld)"></a></p>
+<h3 id="vcld-vclvcld">vcld (VCL::vcld)</h3>
+<p>{color:#6600ff}{<em>}Explain:</em>{color}
+<em> {color:#6600ff}{<em>}main exe{</em>}{color}</em> {color:#6600ff}{<em>}loops every 12 seconds by default{</em>}{color}
+<em> {color:#6600ff}{<em>}doesn't inherit{</em>}{color}</em> {color:#6600ff}{<em>}creates DataStructure object{</em>}{color}
+<em> {color:#6600ff}{<em>}forks{</em>}{color}</em> {color:#6600ff}{<em>}sets some $ENV variables{</em>}{color}
+* {color:#6600ff}{<em>}reaps dead processes{</em>}{color}</p>
+<p><a name="ModularizedArchitecture-DataStructure.pm(VCL::DataStructure)"></a></p>
+<h3 id="datastructurepm-vcldatastructure">DataStructure.pm (VCL::DataStructure)</h3>
+<p>{color:#6600ff}{<em>}Explain:</em>{color}
+<em> {color:#6600ff}{<em>}abstracts database and data structure{</em>}{color}</em> {color:#6600ff}{<em>}aux modules shouldn't know about the DB or data
+structure{</em>}{color}
+<em> {color:#6600ff}{<em>}should be able to change db or data structure and still
+have aux modules work{</em>}{color}</em> {color:#6600ff}{<em>}uses "Inside Out" technique to accessing modules can't
+get to the underlying data{</em>}{color}
+<em> {color:#6600ff}{<em>}data is encapsulated, can only be accessed using
+accessor functions{</em>}{color}</em><em> {color:#6600ff}{<em>}encapsulation is good, explain what it is{</em>}{color}</em> {color:#6600ff}{<em>}usage: $self-&gt;data-&gt;get_image_name()</em>{color}
+<em> {color:#6600ff}{<em>}need to list methods somewhere (not here), there are
+tons of them{</em>}{color}</em> {color:#6600ff}{<em>}gets created by vcld when it finds a
+reservation{</em>}{color}
+<em> {color:#6600ff}{<em>}passed to&nbsp;module constructor{</em>}{color}</em> {color:#6600ff}{<em>}Module.pm sets up access via data()</em>{color}
+* {color:#6600ff}{<em>}Result: any class that inherits from VCL::Module gets
+access{</em>}{color}</p>
+<p><a name="ModularizedArchitecture-utils.pm(VCL::utils)"></a></p>
+<h3 id="utilspm-vclutils">utils.pm (VCL::utils)</h3>
+<p>{color:#6600ff}{<em>}Explain:</em>{color}
+<em> {color:#6600ff}{<em>}contains several utility subs{</em>}{color}</em> {color:#6600ff}{<em>}doesn't inherit from Module.pm (might be a good idea to
+look into this)</em>{color}
+<em> {color:#6600ff}{<em>}contains some legacy stuff - some subs will be removed
+and moved to OS or provisioing modules{</em>}{color}</em> {color:#6600ff}{<em>}should probably make a page describing utility subs
+such as notify, run_ssh_command...</em>{color}
+*<em> {color:#6600ff}{<em>}This should really get sucked out of POD comments in
+the actual code{</em>}{color}</em> {color:#6600ff}{<em>}have to 'use VCL::utils' in order to use it{</em>}{color}</p>
+<p><a name="ModularizedArchitecture-Module.pm(VCL::Module)"></a></p>
+<h3 id="modulepm-vclmodule">Module.pm (VCL::Module)</h3>
+<ul>
+<li>Provides a constructor for all derived objects to use
+<strong> Objects which inherit from VCL::Module do not need to implement their
+own new() subroutines
+</strong> Objects which inherit from VCL::Module do not need to deal with
+"blessing" themselves</li>
+<li>Provides access to the database data for the reservation via the data()
+subroutine implemented by Module.pm
+** Any module derived from VCL::Module can call $self-&gt;data-&gt;[get_something](get_something.html)
+ or $self-&gt;data-&gt;[set_something]</li>
+</ul>
+<p><a name="ModularizedArchitecture-State.pm(VCL::Module::State)"></a></p>
+<h3 id="statepm-vclmodulestate">State.pm (VCL::Module::State)</h3>
+<ul>
+<li>Supports the core VCL state modules such as new.pm, image.pm, reclaim.pm,
+and others</li>
+<li>Provides an initialize() subroutine which performs common tasks whenever
+a state object is created
+** initialize() creates the provisioning and OS objects</li>
+<li>Provides an os() subroutine which allows the state objects to interact with the resource's operating system by calling $self-&gt;os-&gt;[subroutine](subroutine.html)</li>
+<li>Provides a provisioner() subroutine which allows the state objects to interact with the provisioning engine that has been configured for the resource&nbsp;by calling $self-&gt;provisioner-&gt;[subroutine](subroutine.html)</li>
+<li>Provides other subroutines such as reservation_failed() which
+performs&nbsp;a consistent set of&nbsp;tasks when a reservation fails</li>
+</ul>
+<p><a name="ModularizedArchitecture-Provisioning.pm(VCL::Module::Provisioning)"></a></p>
+<h3 id="provisioningpm-vclmoduleprovisioning">Provisioning.pm (VCL::Module::Provisioning)</h3>
+<ul>
+<li>Provisioning engine modules should inherit from VCL::Module::Provisioning</li>
+<li>Modules which are a subclass of VCL::Module::Provisioning
+also&nbsp;receive the&nbsp;functionality provided by VCL::Module through
+inheritance</li>
+<li>VCL::Module::Provisioning provides provisioning modules with access to
+the OS object created for the reservation</li>
+</ul>
+<p><a name="ModularizedArchitecture-OS.pm(VCL::Module::OS)"></a></p>
+<h3 id="ospm-vclmoduleos">OS.pm (VCL::Module::OS)</h3>
+<ul>
+<li>OS&nbsp;modules should inherit from VCL::Module::OS</li>
+<li>Modules which are a subclass of VCL::Module::OS also&nbsp;receive
+the&nbsp;functionality provided by VCL::Module through inheritance</li>
+<li>VCL::Module::OS provides OS modules with access to the&nbsp;provisioning
+object created for the reservation
+** This is useful if the OS needs to perform a task such as power cycling
+the computer if a reboot fails</li>
+</ul>
+<p><a name="ModularizedArchitecture-ImplementationDetails"></a></p>
+<h1 id="implementation-details">Implementation Details</h1>
+<p><a name="ModularizedArchitecture-WorkingwithInheritance"></a></p>
+<h3 id="working-with-inheritance">Working with Inheritance</h3>
+<p>{color:#6600ff}{<em>}Explain:</em>{color}
+<em> {color:#6600ff}{<em>}code to set up inheritance{</em>}{color}</em> {color:#6600ff}{<em>}using $self-&gt;</em>{color}
+<em> {color:#6600ff}{<em>}when to use $self-&gt; (object method) and when to call a
+sub directly (class method)</em>{color}</em> {color:#6600ff}how to check if sub was called as an object method or
+not{color}</p>
+<p><a name="ModularizedArchitecture-IncludingNon-InheritedModules"></a></p>
+<h3 id="including-non-inherited-modules">Including Non-Inherited Modules</h3>
+<p>&nbsp;{color:#6600ff}{<em>}Explain:</em>{color}
+<em> {color:#6600ff}{<em>}use{</em>}{color} {color:#6600ff}<em><a href="file::bin.html">file::bin</a>
+</em>{color} {color:#6600ff}{<em>}to include the lib directory{</em>}{color}</em> {color:#6600ff}{<em>}use warnings, strict, diagnostics are a good
+practice{</em>}{color}
+* {color:#6600ff}{<em>}use 'VCL::utils' is the only VCL module you should need
+to include, all else should be handled by inheritance/objects{</em>}{color}</p>
+<p><a name="ModularizedArchitecture-ModuleInitialization"></a></p>
+<h3 id="module-initialization">Module Initialization</h3>
+<p>{color:#6600ff}{<em>}Explain how modules can implement initialize() subs which
+are automatically called{</em>}{color}</p>
+<p><a name="ModularizedArchitecture-DatabaseConfigurationforModules"></a></p>
+<h3 id="database-configuration-for-modules">Database Configuration for Modules</h3>
+<p>{color:#6600ff}{<em>}Explain module table, computer.moduleid,
+managementnode.predictivemoduleid{</em>}{color}</p>
+<p><a name="ModularizedArchitecture-Cross-ModuleAccess"></a></p>
+<h3 id="cross-module-access">Cross-Module Access</h3>
+<p>{color:#6600ff}{<em>}Explain why some modules shouldn't have access to others,
+which is why Module.pm doesn't make os() and provisioner()
+available{</em>}{color}</p>
+<p><a name="ModularizedArchitecture-Required&OptionalModuleSubroutines"></a></p>
+<h3 id="required-optional-module-subroutines">Required &amp; Optional Module Subroutines</h3>
+<p>{color:#6600ff}{<em>}Explain:</em>{color}
+<em> {color:#6600ff}{<em>}Perl's can() function{</em>}{color}</em> {color:#6600ff}{<em>}core modules use can() to check if module
+implements&nbsp;a subroutine{</em>}{color}
+<em> {color:#6600ff}{<em>}some subs should be required such as OS::load(), most
+should not{</em>}{color}</em> {color:#6600ff}{<em>}if you can think of an exception why a sub wouldn't be
+needed it shouldn't be required{</em>}{color}</p>
+<p><a name="ModularizedArchitecture-PackageOrganization"></a></p>
+<h3 id="package-organization">Package Organization</h3>
+<p>{color:#6600ff}{<em>}Explain:</em>{color}
+<em> {color:#6600ff}{<em>}how directories under lib/VCL should be
+organized{</em>}{color}</em> {color:#6600ff}{<em>}the 'package' line in the modules should match the
+location of the file{</em>}{color}
+*<em> {color:#6600ff}{<em>}Example: "package VCL::Module::OS::Windows" resides in
+"lib/VCL/Module/OS/Windows.pm"</em>{color}</em> {color:#6600ff}{<em>}some core modules don't follow this - the state modules
+reside directly under lib/VCL, should eventually reside under
+lib/VCL/Module/State{</em>}{color}</p>
+  </div>
+  
+  <div id="footer">
+    <div class="copyright">
+      <p>
+        Copyright &copy; 2012 The Apache Software Foundation, Licensed under 
+        the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+        <br />
+        Apache and the Apache feather logo are trademarks of The Apache Software Foundation.
+      </p>
+    </div>
+  </div>
+  
+</body>
+</html>

Added: websites/staging/vcl/trunk/content/confluence_export/network-layout.html
==============================================================================
--- websites/staging/vcl/trunk/content/confluence_export/network-layout.html (added)
+++ websites/staging/vcl/trunk/content/confluence_export/network-layout.html Tue Jan  8 16:38:15 2013
@@ -0,0 +1,164 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE- 2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+
+  <link href="/css/vcl.css" rel="stylesheet" type="text/css">
+  <link href="/css/code.css" rel="stylesheet" type="text/css">
+  <title>Apache VCL - Network Layout</title>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+
+<body>
+  <div id="sitetitle">
+    <table width="100%" border="0" cellspacing="0" cellpadding="5">
+      <tr>
+         <td><a href="/index.html"><img src="/img/vcl-logo.png" height="100" align="left" alt="Apache VCL logo"></a></td>
+         <td><a href="http://www.apache.org"><img src="/img/asf-logo.png" align="right" alt="Apache Software Foundation logo"></a></td>
+      </tr>
+    </table>
+  </div>
+
+  <div id="navigation"> 
+  <ul>
+<li>Information<ul>
+<li><a href="/info/about.html">What is VCL?</a></li>
+<li><a href="/info/features.html">Features</a></li>
+<li><a href="/info/architecture.html">Architecture</a></li>
+<li><a href="/info/use-cases.html">Use Cases</a></li>
+<li><a href="/downloads/download.cgi">Download</a></li>
+<li><a href="http://www.apache.org/licenses/LICENSE-2.0.html">License</a></li>
+<li><a href="/info/faq.html">FAQ</a></li>
+</ul>
+</li>
+<li><a href="/docs/index.html">Documentation</a><ul>
+<li><a href="/docs/using-vcl.html">Using VCL</a></li>
+<li><a href="/docs/image-creation.html">Image Creation</a></li>
+<li><a href="/docs/administration.html">Administration</a></li>
+<li><a href="/docs/installation.html">Installation</a></li>
+<li><a href="/docs/deployment-planning.html">Deployment Planning</a></li>
+</ul>
+</li>
+<li><a href="/comm/index.html">Community</a><ul>
+<li><a href="/comm/index.html#getInvolved">Getting Involved</a></li>
+<li><a href="/comm/index.html#mail-list">Mailing Lists</a></li>
+<li><a href="/comm/index.html#how-do-i-join-the-project">How can I Join</a></li>
+<li><a href="/comm/wiki.html">Wiki</a></li>
+<li><a href="/dev/index.html">Development</a><ul>
+<li><a href="/dev/jira.html">Issue Tracking</a></li>
+<li><a href="/dev/code-documentation.html">Code Documentation</a></li>
+<li><a href="/dev/roadmap.html">Roadmap</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a href="http://www.apache.org">Apache Software Foundation</a><ul>
+<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+<li><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
+</ul>
+</li>
+</ul>
+  </div>
+  
+  <div id="content">
+    <h1 class="title">Network Layout</h1>
+    <p>{excerpt}This page describes the basic network layout required in order for
+VCL to function. It also describes the recommended network layout if a
+blade chassis management module is used.{excerpt}</p>
+<p><a name="NetworkLayout-AtthesimplestformVCLusestwonetworks"></a></p>
+<h1 id="at-the-simplest-form-vcl-uses-two-networks">At the simplest form VCL uses two networks</h1>
+<ol>
+<li>Private - applies to provisioning modules where node is reloaded, esx,
+vmware, etc.</li>
+<li>
+<ul>
+<li>loading and boot strapping images</li>
+</ul>
+</li>
+<li>
+<ul>
+<li>managing reservations, adding/deleting accounts, controlling the OS on
+the node</li>
+</ul>
+</li>
+<li>
+<ul>
+<li>opens access ports on node for user requests on public network interface</li>
+</ul>
+</li>
+<li>
+<ul>
+<li>image creation</li>
+</ul>
+</li>
+<li>
+<ul>
+<li>DHCP serves fixed-addresses over this network to the eth0 adapter of the
+node</li>
+</ul>
+</li>
+<li>
+<ul>
+<li>DHCP is run on the management node - prerequisite</li>
+</ul>
+</li>
+<li>Public</li>
+<li>
+<ul>
+<li>user accessible</li>
+</ul>
+</li>
+<li>
+<ul>
+<li>VCL can either use dhcp(preferred) or statically assign addresses to the
+node on the public network</li>
+</ul>
+</li>
+</ol>
+<p>The diagram below shows the simple layout:
+{gliffy:name=Simple network layout|space=VCL|page=Network
+Layout|align=left|size=M}</p>
+<p><a name="NetworkLayout-BladeCenternetworklayout"></a></p>
+<h1 id="blade-center-network-layout">Blade Center network layout</h1>
+<p>The network using blade center is more involved by adding a 2nd private
+network.
+1. Private 1 - applies to provisioning modules, xCAT, vmware, etc.
+1. Private 2
+1. * allows management node to interact with blade center management module
+1. * provides scaling method for adding multiple blade center's
+1. Public - user access</p>
+<p>The diagram below shows the suggested network layout when using blade
+center.</p>
+<p>{gliffy:name=Blade Center network layout|space=VCL|page=Network
+Layout|align=left|size=M}</p>
+  </div>
+  
+  <div id="footer">
+    <div class="copyright">
+      <p>
+        Copyright &copy; 2012 The Apache Software Foundation, Licensed under 
+        the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+        <br />
+        Apache and the Apache feather logo are trademarks of The Apache Software Foundation.
+      </p>
+    </div>
+  </div>
+  
+</body>
+</html>

Added: websites/staging/vcl/trunk/content/confluence_export/network-requirements.html
==============================================================================
--- websites/staging/vcl/trunk/content/confluence_export/network-requirements.html (added)
+++ websites/staging/vcl/trunk/content/confluence_export/network-requirements.html Tue Jan  8 16:38:15 2013
@@ -0,0 +1,115 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE- 2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+
+  <link href="/css/vcl.css" rel="stylesheet" type="text/css">
+  <link href="/css/code.css" rel="stylesheet" type="text/css">
+  <title>Apache VCL - Network requirements</title>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+
+<body>
+  <div id="sitetitle">
+    <table width="100%" border="0" cellspacing="0" cellpadding="5">
+      <tr>
+         <td><a href="/index.html"><img src="/img/vcl-logo.png" height="100" align="left" alt="Apache VCL logo"></a></td>
+         <td><a href="http://www.apache.org"><img src="/img/asf-logo.png" align="right" alt="Apache Software Foundation logo"></a></td>
+      </tr>
+    </table>
+  </div>
+
+  <div id="navigation"> 
+  <ul>
+<li>Information<ul>
+<li><a href="/info/about.html">What is VCL?</a></li>
+<li><a href="/info/features.html">Features</a></li>
+<li><a href="/info/architecture.html">Architecture</a></li>
+<li><a href="/info/use-cases.html">Use Cases</a></li>
+<li><a href="/downloads/download.cgi">Download</a></li>
+<li><a href="http://www.apache.org/licenses/LICENSE-2.0.html">License</a></li>
+<li><a href="/info/faq.html">FAQ</a></li>
+</ul>
+</li>
+<li><a href="/docs/index.html">Documentation</a><ul>
+<li><a href="/docs/using-vcl.html">Using VCL</a></li>
+<li><a href="/docs/image-creation.html">Image Creation</a></li>
+<li><a href="/docs/administration.html">Administration</a></li>
+<li><a href="/docs/installation.html">Installation</a></li>
+<li><a href="/docs/deployment-planning.html">Deployment Planning</a></li>
+</ul>
+</li>
+<li><a href="/comm/index.html">Community</a><ul>
+<li><a href="/comm/index.html#getInvolved">Getting Involved</a></li>
+<li><a href="/comm/index.html#mail-list">Mailing Lists</a></li>
+<li><a href="/comm/index.html#how-do-i-join-the-project">How can I Join</a></li>
+<li><a href="/comm/wiki.html">Wiki</a></li>
+<li><a href="/dev/index.html">Development</a><ul>
+<li><a href="/dev/jira.html">Issue Tracking</a></li>
+<li><a href="/dev/code-documentation.html">Code Documentation</a></li>
+<li><a href="/dev/roadmap.html">Roadmap</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a href="http://www.apache.org">Apache Software Foundation</a><ul>
+<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+<li><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
+</ul>
+</li>
+</ul>
+  </div>
+  
+  <div id="content">
+    <h1 class="title">Network requirements</h1>
+    <p>For the current Apache VCL release (version 2.2.1), the system requires a
+minimum of two parallel networks, i.e.:
+(1) A private network, providing interconnectivity between the VCL
+management node and the deployed target server(s) (the latter with the
+requested software being provided to the end user, running either real or
+virtual images). This private network allows the management node to manage
+the pool of server resources, and to load and tear down the images (OS plus
+applications/middleware) on the target server(s) that will be handed to an
+end user.
+(2) A public network, providing outside users access to the main VCL GUI
+via the internet, to request hardware/software resources, and to then
+connect them directly to the allocated server(s).</p>
+<p>This is enabled by installing two Ethernet NICs per target server, with a
+minimum bandwidth of 1 Gbs each. 
+For additional details, see
+https://cwiki.apache.org/confluence/display/VCL/Network+Layout</p>
+<p>Note from above that under some possible operational modes, only one NIC is
+required (e.g., when accessing the IBM Smart Cloud). Under other
+circumstances (e.g., controlling blades) more than two NICs may be
+recommended. </p>
+  </div>
+  
+  <div id="footer">
+    <div class="copyright">
+      <p>
+        Copyright &copy; 2012 The Apache Software Foundation, Licensed under 
+        the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+        <br />
+        Apache and the Apache feather logo are trademarks of The Apache Software Foundation.
+      </p>
+    </div>
+  </div>
+  
+</body>
+</html>

Added: websites/staging/vcl/trunk/content/confluence_export/operating-system-module-inheritance.html
==============================================================================
--- websites/staging/vcl/trunk/content/confluence_export/operating-system-module-inheritance.html (added)
+++ websites/staging/vcl/trunk/content/confluence_export/operating-system-module-inheritance.html Tue Jan  8 16:38:15 2013
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE- 2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+
+  <link href="/css/vcl.css" rel="stylesheet" type="text/css">
+  <link href="/css/code.css" rel="stylesheet" type="text/css">
+  <title>Apache VCL - Operating System Module Inheritance</title>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+
+<body>
+  <div id="sitetitle">
+    <table width="100%" border="0" cellspacing="0" cellpadding="5">
+      <tr>
+         <td><a href="/index.html"><img src="/img/vcl-logo.png" height="100" align="left" alt="Apache VCL logo"></a></td>
+         <td><a href="http://www.apache.org"><img src="/img/asf-logo.png" align="right" alt="Apache Software Foundation logo"></a></td>
+      </tr>
+    </table>
+  </div>
+
+  <div id="navigation"> 
+  <ul>
+<li>Information<ul>
+<li><a href="/info/about.html">What is VCL?</a></li>
+<li><a href="/info/features.html">Features</a></li>
+<li><a href="/info/architecture.html">Architecture</a></li>
+<li><a href="/info/use-cases.html">Use Cases</a></li>
+<li><a href="/downloads/download.cgi">Download</a></li>
+<li><a href="http://www.apache.org/licenses/LICENSE-2.0.html">License</a></li>
+<li><a href="/info/faq.html">FAQ</a></li>
+</ul>
+</li>
+<li><a href="/docs/index.html">Documentation</a><ul>
+<li><a href="/docs/using-vcl.html">Using VCL</a></li>
+<li><a href="/docs/image-creation.html">Image Creation</a></li>
+<li><a href="/docs/administration.html">Administration</a></li>
+<li><a href="/docs/installation.html">Installation</a></li>
+<li><a href="/docs/deployment-planning.html">Deployment Planning</a></li>
+</ul>
+</li>
+<li><a href="/comm/index.html">Community</a><ul>
+<li><a href="/comm/index.html#getInvolved">Getting Involved</a></li>
+<li><a href="/comm/index.html#mail-list">Mailing Lists</a></li>
+<li><a href="/comm/index.html#how-do-i-join-the-project">How can I Join</a></li>
+<li><a href="/comm/wiki.html">Wiki</a></li>
+<li><a href="/dev/index.html">Development</a><ul>
+<li><a href="/dev/jira.html">Issue Tracking</a></li>
+<li><a href="/dev/code-documentation.html">Code Documentation</a></li>
+<li><a href="/dev/roadmap.html">Roadmap</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a href="http://www.apache.org">Apache Software Foundation</a><ul>
+<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+<li><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
+</ul>
+</li>
+</ul>
+  </div>
+  
+  <div id="content">
+    <h1 class="title">Operating System Module Inheritance</h1>
+    <p>{gliffy:name=OS Modularization Transition|space=VCL|page=Operating System
+Module Inheritance|align=center|size=L}
+{gliffy:name=OS Module Inheritance|space=VCL|page=Operating System Module
+Inheritance|align=center|size=L}
+<em> Each row in the image table is configured with an OSid
+(image.OSid),&nbsp;this points to the id column in the OS table (OS.id)
+</em> Each&nbsp;row in the OS table is configured with a moduleid
+(OS.moduleid), this points to the id column in the module table (module.id)
+<em> The module table contains a column named perlpackage
+(module.perlpackage), this tells the backend VCL code which Perl module to
+load and use
+</em> The module.perlpackage value, the package statement in the Perl module
+file, and the directory structure of the Perl modules must all align
+<strong> module.perlpackage = VCL::Module::OS::Windows_mod::Version_5::XP_mod
+</strong> lib/VCL/Module/OS/Windows_mod/Version_5/XP_mod.pm:</p>
+<div class="codehilite"><pre>
+</pre></div>
+
+
+<ul>
+<li>Inheritance reduces redundant code</li>
+<li>Subroutines should reside as high up in the hierarchy as possible
+** This allows all objects which&nbsp;are instantiated as a&nbsp;child
+class to use the subroutine</li>
+<li>Child classes can implement subroutines with the same name as one
+implemented by a parent class
+** The child subroutine in the child class overrides the subroutine in the
+parent class
+{gliffy:name=Inheritance Example|space=VCL|page=Operating System Module
+Inheritance|align=center|size=L}</li>
+</ul>
+  </div>
+  
+  <div id="footer">
+    <div class="copyright">
+      <p>
+        Copyright &copy; 2012 The Apache Software Foundation, Licensed under 
+        the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+        <br />
+        Apache and the Apache feather logo are trademarks of The Apache Software Foundation.
+      </p>
+    </div>
+  </div>
+  
+</body>
+</html>

Added: websites/staging/vcl/trunk/content/confluence_export/operating-system-module-interface-specification.html
==============================================================================
--- websites/staging/vcl/trunk/content/confluence_export/operating-system-module-interface-specification.html (added)
+++ websites/staging/vcl/trunk/content/confluence_export/operating-system-module-interface-specification.html Tue Jan  8 16:38:15 2013
@@ -0,0 +1,435 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE- 2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+
+  <link href="/css/vcl.css" rel="stylesheet" type="text/css">
+  <link href="/css/code.css" rel="stylesheet" type="text/css">
+  <title>Apache VCL - Operating System Module Interface Specification</title>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+
+<body>
+  <div id="sitetitle">
+    <table width="100%" border="0" cellspacing="0" cellpadding="5">
+      <tr>
+         <td><a href="/index.html"><img src="/img/vcl-logo.png" height="100" align="left" alt="Apache VCL logo"></a></td>
+         <td><a href="http://www.apache.org"><img src="/img/asf-logo.png" align="right" alt="Apache Software Foundation logo"></a></td>
+      </tr>
+    </table>
+  </div>
+
+  <div id="navigation"> 
+  <ul>
+<li>Information<ul>
+<li><a href="/info/about.html">What is VCL?</a></li>
+<li><a href="/info/features.html">Features</a></li>
+<li><a href="/info/architecture.html">Architecture</a></li>
+<li><a href="/info/use-cases.html">Use Cases</a></li>
+<li><a href="/downloads/download.cgi">Download</a></li>
+<li><a href="http://www.apache.org/licenses/LICENSE-2.0.html">License</a></li>
+<li><a href="/info/faq.html">FAQ</a></li>
+</ul>
+</li>
+<li><a href="/docs/index.html">Documentation</a><ul>
+<li><a href="/docs/using-vcl.html">Using VCL</a></li>
+<li><a href="/docs/image-creation.html">Image Creation</a></li>
+<li><a href="/docs/administration.html">Administration</a></li>
+<li><a href="/docs/installation.html">Installation</a></li>
+<li><a href="/docs/deployment-planning.html">Deployment Planning</a></li>
+</ul>
+</li>
+<li><a href="/comm/index.html">Community</a><ul>
+<li><a href="/comm/index.html#getInvolved">Getting Involved</a></li>
+<li><a href="/comm/index.html#mail-list">Mailing Lists</a></li>
+<li><a href="/comm/index.html#how-do-i-join-the-project">How can I Join</a></li>
+<li><a href="/comm/wiki.html">Wiki</a></li>
+<li><a href="/dev/index.html">Development</a><ul>
+<li><a href="/dev/jira.html">Issue Tracking</a></li>
+<li><a href="/dev/code-documentation.html">Code Documentation</a></li>
+<li><a href="/dev/roadmap.html">Roadmap</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a href="http://www.apache.org">Apache Software Foundation</a><ul>
+<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+<li><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
+</ul>
+</li>
+</ul>
+  </div>
+  
+  <div id="content">
+    <h1 class="title">Operating System Module Interface Specification</h1>
+    <p><a name="OperatingSystemModuleInterfaceSpecification-Background"></a></p>
+<h1 id="background">Background</h1>
+<ul>
+<li>OS module objects are created by State.pm::initialize() when a new state
+object is created.</li>
+<li>OS module objects are available&nbsp;within state and
+provisioning&nbsp;modules</li>
+<li>OS module objects are not available within other types of modules for
+safety.&nbsp;&nbsp; For example,&nbsp;a monitoring or other utility module
+should not be able&nbsp;to call the OS module's shutdown subroutine.</li>
+</ul>
+<p><a name="OperatingSystemModuleInterfaceSpecification-OSModuleSubroutines"></a></p>
+<h1 id="os-module-subroutines">OS Module Subroutines</h1>
+<p>It is highly recommended that all OS modules implement the following
+subroutines.&nbsp; There may be many additional subroutines implemented
+within an OS module.&nbsp; These will not be called by any of the core VCL
+modules nor any of the provisioning engine modules.
+<em> <a href="#pre_capture.html">#pre_capture</a>
+</em> <a href="#post_load.html">#post_load</a>
+<em> <a href="#sanitize.html">#sanitize</a>
+</em> <a href="#reboot.html">#reboot</a>
+<em> <a href="#shutdown.html">#shutdown</a>
+</em> <a href="#get_current_image_name.html">#get_current_image_name</a>
+<em> <a href="#reserve.html">#reserve</a>
+</em> <a href="#grant_access.html">#grant_access</a></p>
+<p>&nbsp;&nbsp;</p>
+<hr />
+<p><a name="OperatingSystemModuleInterfaceSpecification-pre_capture{anchor:pre_capture}"></a></p>
+<h2 id="pre_capture-anchorpre_capture">pre_capture {anchor:pre_capture}</h2>
+<ul>
+<li>Description
+<strong> Configures the&nbsp;OS so that it can be captured by a provisioning
+module.
+</strong> Configures the OS so that it will successfully boot after the captured
+image is reloaded on another resource.
+<strong> Adds and configures drivers so that the image will load on other
+resources.
+</strong> Removes&nbsp;files which should not be saved in the image.
+<strong> Examples of tasks performed by the pre_capture subroutine:
+<strong><em> Log off users which were created for the imaging reservation and delete
+the accounts
+</em></strong> Set root and administrator passwords to standard, known values&nbsp;
+<strong><em> Disable and delete page or swap files
+</em></strong> Delete temp files
+<strong><em> Copy scripts and utilities to the computer which are required after the
+computer boots up but before it has network connectivity
+</em></strong> Copy drivers to the computer
+</strong>* Run a generalization or sealing utility such as Sysprep.exe</li>
+<li>Expected Beginning State
+<strong> Resource is up and accessible
+</strong> Administrator has configured the resource
+** Administrator&nbsp;may or may not have logged out</li>
+<li>Expected Ending State
+<strong> (Default) Resource is shut down and turned off
+</strong> Image captured of resource can be loaded and booted on other hardware
+** Loaded image will successfully boot up, establish network connectivity,
+and be accessible by the OS module's post_load() subroutine</li>
+<li>Called By
+** Provisioning module's capture() subroutine</li>
+<li>Arguments &amp; Calling Environment
+<strong> Must only be called as an object method&nbsp;of an OS object
+($os-&gt;pre_capture())&nbsp;
+</strong> Optional Argument:
+<strong><em> Name: end_state
+</em></strong> Type: hash reference
+<strong><em> Description:
+</em></strong><em> Instructs pre_capture() to leave the resource in a particular state
+after the subroutine's tasks are complet instead of shutting down the
+resource.
+<strong><em> Possible Values:
+</em></strong></em> on - Leave the resource on.&nbsp; Do not shut it down or reboot it.
+<strong><em>* off (Default) - Shut the resource down.</em></strong>* reboot - Initiate a reboot and return.</li>
+<li>Return Values
+<strong> 1
+<strong><em> All pre_capture tasks completed successfully.
+</em></strong> Resource was either shut down or left in the state specified by the
+end_state argument.
+<strong><em> Provisioning module can proceed to capture the image.
+** 0
+</em></strong> Resource OS could not be completely prepared to be captured.
+</strong>* Provisioning module should not proceed to capture the image.</li>
+</ul>
+<p><a name="OperatingSystemModuleInterfaceSpecification-post_load{anchor:post_load}"></a></p>
+<h2 id="post_load-anchorpost_load">post_load {anchor:post_load}</h2>
+<ul>
+<li>Description
+<strong> Performs tasks to configure the OS&nbsp;after an image was loaded.
+</strong> Does not configure the resource for a particular reservation.
+<strong> Examples of tasks performed by the post_load subroutine:
+<strong><em> Make sure OS licensing has been activated
+</em></strong> Configure&nbsp;services
+<strong><em> Rename the computer or resource
+</em></strong> Randomize passwords
+</strong>* Configure the firewall</li>
+<li>Expected Beginning State
+<strong> Resource has been powered on&nbsp;
+</strong> Resource may or may not be accessible
+** It's expected that the resource will become accessible automatically
+after it boots and performs any initialization tasks which were
+preconfigured by the pre_capture subroutine.</li>
+<li>Expected Ending&nbsp;State
+** Resource has been loaded with an image and the OS was configured so that
+it is ready to be reserved.</li>
+<li>Called By
+** Provisioning module's load() subroutine</li>
+<li>Arguments &amp; Calling Environment
+<strong> Must only be called as an object method&nbsp;of an OS object
+($os-&gt;post_load())&nbsp;
+</strong> No arguments</li>
+<li>Return Values
+<strong> 1
+<strong><em> All OS post-load tasks were completed successfully
+** 0
+</em></strong> All OS post-load tasks could not be completed but the resource became
+accessible
+</strong> Undefined
+*** Resource never became accessible</li>
+</ul>
+<p><a name="OperatingSystemModuleInterfaceSpecification-sanitize{anchor:sanitize}"></a></p>
+<h2 id="sanitize-anchorsanitize">sanitize {anchor:sanitize}</h2>
+<ul>
+<li>Description
+<strong> Reverts the changes made when preparing a resource for a particular
+reservation.
+</strong> A resource needs to be sanitized if it was successfully reserved for a
+reservation but not used.
+<strong> The goal of the sanitize subroutine should be to&nbsp;clean up and
+reconfigure&nbsp;a resource so that it can be provisioned for another
+reservation without having to be reloaded.
+</strong> An attempt is made to sanitize the resource by reclaim.pm if it
+determines that the resource was never used for a reservation.&nbsp; This
+will occur if a reservation is made, enters the reserved state, but never
+enters the inuse state.
+** Examples of tasks performed by the sanitize subroutine:
+<strong><em> Delete user accounts which were created for a reservation
+</em></strong> Revoke access to the resource which was granted for a reservation</li>
+<li>Expected Beginning State</li>
+<li>Expected Ending State&nbsp;</li>
+<li>Called By
+<strong> reclaim.pm::process()
+</strong> May be called by the same OS module's pre_capture() subroutine to
+sanitize the resource after it was reserved and used by the image creator.</li>
+<li>Arguments &amp; Calling Environment
+<strong> Must only be called as an object method&nbsp;of an OS object
+($os-&gt;sanitize())
+</strong> No arguments will be passed to sanitize()</li>
+<li>Return Values
+<strong> 1
+<strong><em> Sanitization was completely successful
+</em></strong> Resource is ready to be provisioned and reserved for another
+reservation
+<strong><em> Resource does not need&nbsp;to be reloaded
+** 0
+</em></strong> Sanitization could not be completed
+</strong>* Resource needs to be reloaded</li>
+</ul>
+<p><a name="OperatingSystemModuleInterfaceSpecification-reboot{anchor:reboot}"></a></p>
+<h2 id="reboot-anchorreboot">reboot {anchor:reboot}</h2>
+<ul>
+<li>Description
+<strong> Performs a complete graceful reboot of the OS.
+</strong> May forcibly log off users if necessary.
+<strong> Waits for the reboot to complete.
+</strong> Returns after the reboot is complete.</li>
+<li>Expected Beginning State
+<strong> Computer is up and accessible.
+</strong> Users may be logged on to the computer.</li>
+<li>Expected Ending&nbsp;State
+<strong> Computer has been rebooted.
+</strong> Computer is accessible.</li>
+<li>Called By
+** May be called by any module which has access to the OS object</li>
+<li>Arguments &amp; Calling Environment
+<strong> Must only be called as an object method&nbsp;of an OS object
+($os-&gt;reboot())
+</strong> Argument:
+<strong><em> Name: timeout
+</em></strong> Description:
+<strong><em>* Instructs reboot() to wait a maximum number of minutes for the reboot
+to complete</em></strong><em> If timeout has been reached and computer has not finished rebooting, 0
+should be returned
+<strong><em> Required: No
+</em></strong> Default Value: 5 minutes
+<strong><em> Data Type: integer
+</em></strong> Possible Values:
+</em>*** Any positive integer</li>
+<li>Return Values
+<strong> 1
+<strong><em> Reboot completed successfully
+</em></strong> Computer is accessible
+</strong> 0
+<strong><em> Reboot was initiated but computer never came back online
+</em></strong> Timeout was reached
+<strong> Undefined
+</strong>* Reboot could not be initiated</li>
+</ul>
+<p><a name="OperatingSystemModuleInterfaceSpecification-shutdown{anchor:shutdown}"></a></p>
+<h2 id="shutdown-anchorshutdown">shutdown {anchor:shutdown}</h2>
+<ul>
+<li>Description
+<strong> Performs a graceful shutdown of the OS.
+</strong> May forcibly log off users if necessary.
+<strong> Waits for the shutdown to complete.
+</strong> Returns after the shutdown is complete and the computer is off.</li>
+<li>Expected Beginning State
+<strong> Computer is up and accessible.
+</strong> Users may be logged on to the computer.</li>
+<li>Expected Ending State
+** Computer is off.</li>
+<li>Called By
+** May be called by any module which has access to the OS object</li>
+<li>Arguments &amp; Calling Environment
+<strong> Must only be called as an object method&nbsp;of an OS object
+($os-&gt;reboot())
+</strong> Argument:
+<strong><em> Name: timeout
+</em></strong> Description:
+<strong><em>* Instructs shutdown() to wait a maximum number of minutes for the
+shutdown to complete</em></strong><em> If timeout has been reached and computer has not finished shutting
+down, 0 should be returned
+<strong><em> Required: No
+</em></strong> Default Value: 5 minutes
+<strong><em> Data Type: integer
+</em></strong> Possible Values:
+</em>*** Any positive integer</li>
+<li>Return Values
+** 1
+<strong><em> Shudown completed successfully
+** 0
+</em></strong> Shutdown was initiated but computer never shut down
+<strong><em> Timeout was reached
+** Undefined
+</em></strong> Shutdown could not be initiated</li>
+</ul>
+<p><a name="OperatingSystemModuleInterfaceSpecification-get_current_image_name{anchor:get_current_image_name}"></a></p>
+<h2 id="get_current_image_name-anchorget_current_image_name">get_current_image_name {anchor:get_current_image_name}</h2>
+<ul>
+<li>Description
+<strong> Returns the name of the current image that is loaded on the
+resource(currentimage.txt file).
+</strong> The name corresponds to the image.name column in the database.
+<strong> Returning a name implies that the resource is accessible.
+</strong> The OS.pm will probably handle this subroutine.</li>
+<li>Expected Beginning State
+** Resource is accessible.</li>
+<li>Expected Ending&nbsp;State
+** The resource state should be identical to before get_current_image_name
+was called.</li>
+<li>Called By
+<strong> Provisioning module's node_status() subroutine.
+</strong> Used to determine if the OS and provisioning engine agree on the current
+image loaded on a resource.
+** Can be used to determine if a resource is accessible.&nbsp; A valid
+string will be returned if the resource is accessible.</li>
+<li>Arguments &amp; Calling Environment
+<strong> Must only be called as an object method&nbsp;of an OS object
+($os-&gt;get_current_image_name())
+</strong> No arguments</li>
+<li>Return Values
+<strong> String
+<strong><em> String contains a VCL image name
+** 0
+</em></strong> Computer is accessible but failed&nbsp;to determine the current loaded
+image
+</strong> Undefined
+*** Computer is not accessible</li>
+</ul>
+<p><a name="OperatingSystemModuleInterfaceSpecification-reserve&nbsp;{anchor:reserve}"></a></p>
+<h2 id="reservewzxhzdk22anchorreserve">reserve&nbsp;{anchor:reserve}</h2>
+<ul>
+<li>Description
+<strong> reserve() gets called by new.pm after a machine has been reloaded if the
+state is "new" (new.pm also handles the "reload" state and others)
+</strong> It should perform the steps necessary to take a reloaded machine and
+prepare it for a particular reservation
+<strong> Anything reservation-specific that doesn't require knowing the user's IP
+should be done in reserve()
+</strong> After reserve() has run, the state can be changed to reserved and the
+"Connect" button can be presented to the user
+<strong> reserve() would normally add&nbsp;the reservation user and any users set
+in imagemeta usergroup to the computer, set their passwords, and add them
+to the appropriate groups
+</strong> reserve()&nbsp;does not configure the firewall or do anything networking
+related because at the time it's called, the state has not been changed to
+reserved and the user has not been shown the "Connect" button.&nbsp;
+Hence,&nbsp;the user's IP is not known.
+** reserve() is called by new.pm before the "Connect" button is shown to
+the user because adding several user accounts may take a long time.&nbsp;
+If adding users was done after the state was changed to reserved, a user
+could attempt to connect before all of the users accounts were added.</li>
+<li>Expected Beginning State
+<strong> Request state is pending/new&nbsp;
+</strong> Computer has been reloaded</li>
+<li>Expected Ending&nbsp;State
+<strong> Computer has been configured for a particular reservation
+</strong> User accounts have been added and configured
+** Request state can be changed to reserved and the "Connect" button can be
+presented to the user</li>
+<li>Called By
+** new.pm</li>
+<li>Arguments &amp; Calling Environment
+<strong> Must only be called as an object method&nbsp;of an OS object
+($os-&gt;reserve())
+</strong> No arguments</li>
+<li>Return Values
+** True (1)&nbsp;
+<strong><em> Computer has successfully been configured for a particular reservation
+** False (0 or undefined)&nbsp;
+</em></strong> Computer could not be configured for a particular reservation</li>
+</ul>
+<p><a name="OperatingSystemModuleInterfaceSpecification-grant_access&nbsp;{anchor:grant_access}"></a></p>
+<h2 id="grant_accesswzxhzdk25anchorgrant_access">grant_access&nbsp;{anchor:grant_access}</h2>
+<ul>
+<li>Description
+<strong> grant_access()&nbsp;gets called by reserved.pm after the user has
+clicked the&nbsp;"Connect" button
+</strong> The user's IP address is known when grant_access() is called
+<strong> grant_access() should perform all the steps necessary to open up the
+machine so the user(s) added by reserve() can connect
+</strong> grant_access() may&nbsp;enables RDP or public SSH traffic depending on
+the OS</li>
+<li>Expected Beginning State
+<strong> User has just clicked the "Connect" button&nbsp;
+</strong> Request state is pending/reserved</li>
+<li>Expected Ending&nbsp;State
+** Computer has been configured to allow the user to connect</li>
+<li>Called By
+** reserved.pm</li>
+<li>Arguments &amp; Calling Environment
+<strong> Must only be called as an object method&nbsp;of an OS object
+($os-&gt;get_current_image_name())
+</strong> No arguments</li>
+<li>Return Values
+** True (1)&nbsp;
+<strong><em> Computer was successfully configured to allow access for the
+reservation users
+** False (0 or undefined)
+</em></strong> Computer could not be configured to allow access for the reservation
+users</li>
+</ul>
+  </div>
+  
+  <div id="footer">
+    <div class="copyright">
+      <p>
+        Copyright &copy; 2012 The Apache Software Foundation, Licensed under 
+        the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+        <br />
+        Apache and the Apache feather logo are trademarks of The Apache Software Foundation.
+      </p>
+    </div>
+  </div>
+  
+</body>
+</html>

Added: websites/staging/vcl/trunk/content/confluence_export/patch-to-remove-mcrypt-dependency.html
==============================================================================
--- websites/staging/vcl/trunk/content/confluence_export/patch-to-remove-mcrypt-dependency.html (added)
+++ websites/staging/vcl/trunk/content/confluence_export/patch-to-remove-mcrypt-dependency.html Tue Jan  8 16:38:15 2013
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE- 2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+
+  <link href="/css/vcl.css" rel="stylesheet" type="text/css">
+  <link href="/css/code.css" rel="stylesheet" type="text/css">
+  <title>Apache VCL - Patch to remove mcrypt dependency</title>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+
+<body>
+  <div id="sitetitle">
+    <table width="100%" border="0" cellspacing="0" cellpadding="5">
+      <tr>
+         <td><a href="/index.html"><img src="/img/vcl-logo.png" height="100" align="left" alt="Apache VCL logo"></a></td>
+         <td><a href="http://www.apache.org"><img src="/img/asf-logo.png" align="right" alt="Apache Software Foundation logo"></a></td>
+      </tr>
+    </table>
+  </div>
+
+  <div id="navigation"> 
+  <ul>
+<li>Information<ul>
+<li><a href="/info/about.html">What is VCL?</a></li>
+<li><a href="/info/features.html">Features</a></li>
+<li><a href="/info/architecture.html">Architecture</a></li>
+<li><a href="/info/use-cases.html">Use Cases</a></li>
+<li><a href="/downloads/download.cgi">Download</a></li>
+<li><a href="http://www.apache.org/licenses/LICENSE-2.0.html">License</a></li>
+<li><a href="/info/faq.html">FAQ</a></li>
+</ul>
+</li>
+<li><a href="/docs/index.html">Documentation</a><ul>
+<li><a href="/docs/using-vcl.html">Using VCL</a></li>
+<li><a href="/docs/image-creation.html">Image Creation</a></li>
+<li><a href="/docs/administration.html">Administration</a></li>
+<li><a href="/docs/installation.html">Installation</a></li>
+<li><a href="/docs/deployment-planning.html">Deployment Planning</a></li>
+</ul>
+</li>
+<li><a href="/comm/index.html">Community</a><ul>
+<li><a href="/comm/index.html#getInvolved">Getting Involved</a></li>
+<li><a href="/comm/index.html#mail-list">Mailing Lists</a></li>
+<li><a href="/comm/index.html#how-do-i-join-the-project">How can I Join</a></li>
+<li><a href="/comm/wiki.html">Wiki</a></li>
+<li><a href="/dev/index.html">Development</a><ul>
+<li><a href="/dev/jira.html">Issue Tracking</a></li>
+<li><a href="/dev/code-documentation.html">Code Documentation</a></li>
+<li><a href="/dev/roadmap.html">Roadmap</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a href="http://www.apache.org">Apache Software Foundation</a><ul>
+<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+<li><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
+</ul>
+</li>
+</ul>
+  </div>
+  
+  <div id="content">
+    <h1 class="title">Patch to remove mcrypt dependency</h1>
+    <p>This page explains how to use a php package called <a href="http://phpseclib.sourceforge.net/">phpseclib</a>
+ to remove the requirement of mcrypt. phpseclib will use mcrypt functions
+if it is installed but will use native php to implement the encryption if
+it is not installed.</p>
+<p>Here are the steps to remove the dependency:
+<em> Download <a href="http://sourceforge.net/projects/phpseclib/files/phpseclib0.2.2.zip/download">phpseclib</a>
+ to /tmp (version 0.2.2 was used for testing)
+{tip}
+cd /tmp
+wget
+{nolink:http://downloads.sourceforge.net/project/phpseclib/phpseclib0.2.2.zip}
+{tip}
+</em> Create a directory named phpseclib in your .ht-inc directory
+{tip}
+mkdir /var/www/html/vcl/.ht-inc/phpseclib
+{tip}
+<em> unzip phpseclib in the phpseclib directory
+{tip}
+cd /var/www/html/vcl/.ht-inc/phpseclib
+unzip /tmp/phpseclib0.2.2.zip
+{tip}
+</em> Download <a href="http://people.apache.org/~jfthomps/no_mcrypt.patch">no_mcrypt.patch</a>
+ to your .ht-inc directory
+{tip}
+cd /var/www/html/vcl/.ht-inc
+wget {nolink:http://people.apache.org/~jfthomps/no_mcrypt.patch}
+{tip}
+* Apply the patch
+{tip}
+patch &lt; no_mcrypt.patch
+{tip}</p>
+  </div>
+  
+  <div id="footer">
+    <div class="copyright">
+      <p>
+        Copyright &copy; 2012 The Apache Software Foundation, Licensed under 
+        the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+        <br />
+        Apache and the Apache feather logo are trademarks of The Apache Software Foundation.
+      </p>
+    </div>
+  </div>
+  
+</body>
+</html>

Added: websites/staging/vcl/trunk/content/confluence_export/pre-release-test-procedures.html
==============================================================================
--- websites/staging/vcl/trunk/content/confluence_export/pre-release-test-procedures.html (added)
+++ websites/staging/vcl/trunk/content/confluence_export/pre-release-test-procedures.html Tue Jan  8 16:38:15 2013
@@ -0,0 +1,138 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE- 2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+
+  <link href="/css/vcl.css" rel="stylesheet" type="text/css">
+  <link href="/css/code.css" rel="stylesheet" type="text/css">
+  <title>Apache VCL - Pre-release test procedures</title>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+
+<body>
+  <div id="sitetitle">
+    <table width="100%" border="0" cellspacing="0" cellpadding="5">
+      <tr>
+         <td><a href="/index.html"><img src="/img/vcl-logo.png" height="100" align="left" alt="Apache VCL logo"></a></td>
+         <td><a href="http://www.apache.org"><img src="/img/asf-logo.png" align="right" alt="Apache Software Foundation logo"></a></td>
+      </tr>
+    </table>
+  </div>
+
+  <div id="navigation"> 
+  <ul>
+<li>Information<ul>
+<li><a href="/info/about.html">What is VCL?</a></li>
+<li><a href="/info/features.html">Features</a></li>
+<li><a href="/info/architecture.html">Architecture</a></li>
+<li><a href="/info/use-cases.html">Use Cases</a></li>
+<li><a href="/downloads/download.cgi">Download</a></li>
+<li><a href="http://www.apache.org/licenses/LICENSE-2.0.html">License</a></li>
+<li><a href="/info/faq.html">FAQ</a></li>
+</ul>
+</li>
+<li><a href="/docs/index.html">Documentation</a><ul>
+<li><a href="/docs/using-vcl.html">Using VCL</a></li>
+<li><a href="/docs/image-creation.html">Image Creation</a></li>
+<li><a href="/docs/administration.html">Administration</a></li>
+<li><a href="/docs/installation.html">Installation</a></li>
+<li><a href="/docs/deployment-planning.html">Deployment Planning</a></li>
+</ul>
+</li>
+<li><a href="/comm/index.html">Community</a><ul>
+<li><a href="/comm/index.html#getInvolved">Getting Involved</a></li>
+<li><a href="/comm/index.html#mail-list">Mailing Lists</a></li>
+<li><a href="/comm/index.html#how-do-i-join-the-project">How can I Join</a></li>
+<li><a href="/comm/wiki.html">Wiki</a></li>
+<li><a href="/dev/index.html">Development</a><ul>
+<li><a href="/dev/jira.html">Issue Tracking</a></li>
+<li><a href="/dev/code-documentation.html">Code Documentation</a></li>
+<li><a href="/dev/roadmap.html">Roadmap</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a href="http://www.apache.org">Apache Software Foundation</a><ul>
+<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+<li><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
+</ul>
+</li>
+</ul>
+  </div>
+  
+  <div id="content">
+    <h1 class="title">Pre-release test procedures</h1>
+    <p>Recommended test cases for release candidates.</p>
+<p><a name="Pre-releasetestprocedures-Webfrontend"></a></p>
+<h3 id="web-frontend">Web frontend</h3>
+<ul>
+<li>Block Allocations
+<strong> For each of these, test for weekly, monthly, and list
+</strong> Create new block allocations; try adding multiple times per test
+<strong> Edit block allocations
+</strong> Delete block allocations
+<strong> Request new block allocations; try both specifying a user group and
+selecting "(group not listed)"; try with and without comments; try with
+users with and without an email address in the user table
+</strong> Accept requested block allocations; try accepting from users with and
+without an email address in the user table
+<strong> Reject requested block allocations; try rejecting from users with and
+without an email address in the user table
+</strong> Create an entry where you are in the user group that is active during
+the current time to check viewing the block status</li>
+</ul>
+<p><a name="Pre-releasetestprocedures-WebfrontendXMLRPCAPI"></a></p>
+<h3 id="web-frontend-xml-rpc-api">Web frontend XML RPC API</h3>
+<p>(placeholder)</p>
+<p><a name="Pre-releasetestprocedures-Backend-Managementnode"></a></p>
+<h3 id="backend-management-node">Backend - Management node</h3>
+<p>General range of tests for the back-end processing. The tests would more
+detailed depending on the provisioning module and OS module.</p>
+<ul>
+<li>Reservation flow:
+<strong> start - proper loading through provisioning module
+</strong> monitor - during inuse state, based on check user connection flag
+** end - warning of upcoming end time, reclaim / reload node if applicable</li>
+<li>End User Notifications: start, end time near, end. Image creation. (User
+pref dependent)</li>
+<li>Sysadmin Notifications: Warnings and Criticals</li>
+<li>Image Creation: pre-capture process(write currentimage.txt, setup OS with
+boot scripts), proper flow from start - complete. Dependent on provisioning
+and OS modules.</li>
+<li>Cluster reservations: Flow - parent /child dependency. Parent process
+waits on children node to load, etc Children load/processes depend on
+parent process to handle request state change and notify end-user</li>
+<li>Block allocations (previously called Block Reservations): Correct
+processing, notifications/warnings, etc</li>
+</ul>
+  </div>
+  
+  <div id="footer">
+    <div class="copyright">
+      <p>
+        Copyright &copy; 2012 The Apache Software Foundation, Licensed under 
+        the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+        <br />
+        Apache and the Apache feather logo are trademarks of The Apache Software Foundation.
+      </p>
+    </div>
+  </div>
+  
+</body>
+</html>

Added: websites/staging/vcl/trunk/content/confluence_export/provisioning-engine-module-interface-specification.html
==============================================================================
--- websites/staging/vcl/trunk/content/confluence_export/provisioning-engine-module-interface-specification.html (added)
+++ websites/staging/vcl/trunk/content/confluence_export/provisioning-engine-module-interface-specification.html Tue Jan  8 16:38:15 2013
@@ -0,0 +1,320 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE- 2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+
+  <link href="/css/vcl.css" rel="stylesheet" type="text/css">
+  <link href="/css/code.css" rel="stylesheet" type="text/css">
+  <title>Apache VCL - Provisioning Engine Module Interface Specification</title>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+
+<body>
+  <div id="sitetitle">
+    <table width="100%" border="0" cellspacing="0" cellpadding="5">
+      <tr>
+         <td><a href="/index.html"><img src="/img/vcl-logo.png" height="100" align="left" alt="Apache VCL logo"></a></td>
+         <td><a href="http://www.apache.org"><img src="/img/asf-logo.png" align="right" alt="Apache Software Foundation logo"></a></td>
+      </tr>
+    </table>
+  </div>
+
+  <div id="navigation"> 
+  <ul>
+<li>Information<ul>
+<li><a href="/info/about.html">What is VCL?</a></li>
+<li><a href="/info/features.html">Features</a></li>
+<li><a href="/info/architecture.html">Architecture</a></li>
+<li><a href="/info/use-cases.html">Use Cases</a></li>
+<li><a href="/downloads/download.cgi">Download</a></li>
+<li><a href="http://www.apache.org/licenses/LICENSE-2.0.html">License</a></li>
+<li><a href="/info/faq.html">FAQ</a></li>
+</ul>
+</li>
+<li><a href="/docs/index.html">Documentation</a><ul>
+<li><a href="/docs/using-vcl.html">Using VCL</a></li>
+<li><a href="/docs/image-creation.html">Image Creation</a></li>
+<li><a href="/docs/administration.html">Administration</a></li>
+<li><a href="/docs/installation.html">Installation</a></li>
+<li><a href="/docs/deployment-planning.html">Deployment Planning</a></li>
+</ul>
+</li>
+<li><a href="/comm/index.html">Community</a><ul>
+<li><a href="/comm/index.html#getInvolved">Getting Involved</a></li>
+<li><a href="/comm/index.html#mail-list">Mailing Lists</a></li>
+<li><a href="/comm/index.html#how-do-i-join-the-project">How can I Join</a></li>
+<li><a href="/comm/wiki.html">Wiki</a></li>
+<li><a href="/dev/index.html">Development</a><ul>
+<li><a href="/dev/jira.html">Issue Tracking</a></li>
+<li><a href="/dev/code-documentation.html">Code Documentation</a></li>
+<li><a href="/dev/roadmap.html">Roadmap</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a href="http://www.apache.org">Apache Software Foundation</a><ul>
+<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+<li><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
+</ul>
+</li>
+</ul>
+  </div>
+  
+  <div id="content">
+    <h1 class="title">Provisioning Engine Module Interface Specification</h1>
+    <p><a name="ProvisioningEngineModuleInterfaceSpecification-Background"></a></p>
+<h1 id="background">Background</h1>
+<ul>
+<li>Provisioning module objects are created by State.pm::initialize() when a
+new state object is created.</li>
+<li>Provisioning module objects are available&nbsp;within state modules and
+OS modules</li>
+<li>Provisioning module objects are not available within other types of
+modules for safety.</li>
+</ul>
+<p>{color:#6600ff}{<em>}Explain:</em>{color}
+<em> {color:#6600ff}{<em>}define what we mean by "provisioning system"</em>{color}</em> {color:#6600ff}{<em>}give examples of provisioning systems{</em>}{color}
+<em> {color:#6600ff}{<em>}could be bare metal, virtual, differentiated,
+undifferentiated, a service, a special piece of hardware, eventually VCL
+could provision various types of resources{</em>}{color}</em> {color:#6600ff}{<em>}relationships among mgt nodes, computers, provisioning
+systems (such as computer is assigned 1 prov system at a time)</em>{color}
+<em> {color:#6600ff}{<em>}computer.provisioningid{</em>}{color}</em> {color:#6600ff}{<em>}provisioning table{</em>}{color}
+<em> {color:#6600ff}{<em>}future: management node to provisioning
+mapping{</em>}{color}</em> {color:#6600ff}{<em>}provisioning module implementation is responsible for
+knowing which OS interactions are necessary{</em>}{color}
+** {color:#6600ff}{<em>}image.pm calls provisioner-&gt;capture, new.pm calls
+provisioner-&gt;load, it calls OS subs as necessary{</em>}{color}</p>
+<p><a name="ProvisioningEngineModuleInterfaceSpecification-ProvisioningModuleSubroutines"></a></p>
+<h1 id="provisioning-module-subroutines">Provisioning Module Subroutines</h1>
+<p>It is highly recommended that all&nbsp;provisioning modules implement the
+following subroutines.&nbsp; There may be many additional subroutines
+implemented within a provisioning module.&nbsp; These will not be called by
+any of the core VCL modules.
+<em> <a href="#node_status.html">#node_status</a>
+</em> <a href="#capture.html">#capture</a>
+<em> <a href="#load.html">#load</a>
+</em> <a href="#power_off.html">#power_off</a>
+<em> <a href="#power_on.html">#power_on</a>
+</em> <a href="#power_reset.html">#power_reset</a>
+<em> <a href="#get_current_image.html">#get_current_image</a>
+</em> <a href="#get_image_size.html">#get_image_size</a></p>
+<hr />
+<p><a name="ProvisioningEngineModuleInterfaceSpecification-node_status{anchor:node_status}"></a></p>
+<h2 id="node_status-anchornode_status">node_status {anchor:node_status}</h2>
+<ul>
+<li>
+<p>Description
+<strong> A provisioning module's node_status routine checks the current status of
+the node. Through the module this routine is aware of how to figure out if
+a node is available and loaded with the correct image or needs to be
+reloaded.
+</strong> It returns a hash reference with various information, the most important
+being the "status"</p>
+<p>ie for the xcat module:
+hashref: reference to hash with keys/values
+{status} =&gt; &lt;"READY","RELOAD"&gt;
+{ping} =&gt; &lt;0,1&gt;
+{ssh} =&gt; &lt;0,1&gt;
+{rpower} =&gt; &lt;0,1&gt;
+{nodeset} =&gt; &lt;"boot", "install", "image", ...&gt;
+{nodetype} =&gt; <image name>
+{currentimage} =&gt; <image name></p>
+</li>
+</ul>
+<p>** The status key/value tells the vcl system the node is ready or needs to
+be reloaded.</p>
+<p><a name="ProvisioningEngineModuleInterfaceSpecification-capture{anchor:capture}"></a></p>
+<h2 id="capture-anchorcapture">capture {anchor:capture}</h2>
+<ul>
+<li>Description
+<strong> A provisioning module's capture() subroutine saves the current state of
+the resource.&nbsp;&nbsp;
+</strong> For the provisioning of computers, this means saving an image of the
+contents of the hard drive.&nbsp; Although current VCL implementations
+focus on provisioning computers, the capture() subroutine does not
+necessarily need to save an image of a hard drive.&nbsp; A provisioning
+module may be developed to save the configuration of a network service or
+some other type of resource.
+<strong> The capture() subroutine is responsible for calling the OS module's
+pre_capture&nbsp;subroutine.&nbsp; This is not called by the image.pm state
+module because there may be cases where an OS isn't applicable.
+</strong> The capture() subroutine is responsible for waiting for the entire
+capture process to complete.</li>
+<li>Expected Beginning State
+<strong> An administrator has configured the resource and initiated the capture
+using the VCL website.
+</strong> The resource is on and accessible.
+** The information contained in the data object describes the image which
+does not yet exist and will be captured.</li>
+<li>Expected Ending State
+<strong> The entire capture process is complete or else an error occurred.
+</strong> The capture() subroutine has waited for an image to be captured.</li>
+<li>Called By
+** image.pm::process()</li>
+<li>Arguments &amp; Calling Environment
+<strong> Should only be called as an object method&nbsp;of a image.pm state
+object ($self-&gt;capture())&nbsp;
+</strong> No Arguments</li>
+<li>Return Values
+<strong> 1
+<strong><em> Resource was successfully captured.
+</em></strong> image.pm may proceed to update the database tables making the image
+available to be provisioned.
+</strong> 0
+<strong><em> Resource was not successfully captured.
+</em></strong> An administrator needs to investigate the problem.</li>
+</ul>
+<p><a name="ProvisioningEngineModuleInterfaceSpecification-load{anchor:load}"></a></p>
+<h2 id="load-anchorload">load {anchor:load}</h2>
+<ul>
+<li>Description
+<strong> A provisioning module's load() subroutine is responsible for
+provisioning the node.
+</strong> This means starting a virtual machine, loading a image to disk, or
+nothing in the case of the standalone lab machine.</li>
+<li>Expected Beginning State
+** ...</li>
+<li>Expected Ending State
+** ...</li>
+<li>Called By
+** ...</li>
+<li>Arguments &amp; Calling Environment
+<strong> Must only be called as an object method&nbsp;of a
+provisioning&nbsp;object ($provisioner-&gt;pre_capture())&nbsp;
+</strong> No Arguments</li>
+<li>Return Values
+<strong> 1
+<strong><em> ...
+** 0
+</em></strong> ...
+</strong> Undefined
+*** ...</li>
+</ul>
+<p><a name="ProvisioningEngineModuleInterfaceSpecification-power_off{anchor:power_off}"></a></p>
+<h2 id="power_off-anchorpower_off">power_off {anchor:power_off}</h2>
+<ul>
+<li>Description
+** A provisioning module's power_off() subroutine is responsible for
+powering off or down a node.</li>
+<li>Expected Beginning State
+** ...</li>
+<li>Expected Ending State
+** ...</li>
+<li>Called By
+** ...</li>
+<li>Arguments &amp; Calling Environment
+<strong> Must only be called as an object method&nbsp;of a
+provisioning&nbsp;object ($provisioner-&gt;pre_capture())&nbsp;
+</strong> No Arguments</li>
+<li>Return Values
+<strong> 1
+<strong><em> ...
+** 0
+</em></strong> ...
+</strong> Undefined
+*** ...</li>
+</ul>
+<p><a name="ProvisioningEngineModuleInterfaceSpecification-power_on{anchor:power_on}"></a></p>
+<h2 id="power_on-anchorpower_on">power_on {anchor:power_on}</h2>
+<ul>
+<li>Description
+** A provisioning module's power_on() subroutine is responsible for
+powering on a node.</li>
+<li>Expected Beginning State
+** ...</li>
+<li>Expected Ending State
+** ...</li>
+<li>Called By
+** ...</li>
+<li>Arguments &amp; Calling Environment
+<strong> Must only be called as an object method&nbsp;of a
+provisioning&nbsp;object ($provisioner-&gt;pre_capture())&nbsp;
+</strong> No Arguments</li>
+<li>Return Values
+<strong> 1
+<strong><em> ...
+** 0
+</em></strong> ...
+</strong> Undefined
+*** ...</li>
+</ul>
+<p><a name="ProvisioningEngineModuleInterfaceSpecification-get_current_image{anchor:get_current_image}"></a></p>
+<h2 id="get_current_image-anchorget_current_image">get_current_image {anchor:get_current_image}</h2>
+<ul>
+<li>Description
+** A provisioning module's get_current_image() subroutine is responsible
+for trying to figure out what image is loaded on the node. By reading
+currentimage.txt located on the node's in root's user directory. This
+routine can be copied from another module.</li>
+<li>Expected Beginning State
+** The node is expected to be online and accessible.</li>
+<li>Called By
+** node_status()</li>
+<li>Arguments &amp; Calling Environment
+<strong> Must only be called as an object method&nbsp;of a
+provisioning&nbsp;object ($provisioner-&gt;pre_capture())&nbsp;
+</strong> No Arguments</li>
+<li>Return Values
+<strong> 1
+<strong><em> ...
+** 0
+</em></strong> ...
+</strong> Undefined
+*** ...</li>
+</ul>
+<p><a name="ProvisioningEngineModuleInterfaceSpecification-get_image_size&nbsp;{anchor:get_image_size}"></a></p>
+<h2 id="get_image_sizewzxhzdk21anchorget_image_size">get_image_size&nbsp;{anchor:get_image_size}</h2>
+<ul>
+<li>Description
+** A provisioning module's get_image_size() subroutine is responsible for
+collected the disk usage of the image within the image library.<br />
+</li>
+<li>Expected Beginning State
+** N/A</li>
+<li>Expected Ending State
+** ...</li>
+<li>Called By
+** ...</li>
+<li>Arguments &amp; Calling Environment
+<strong> Must only be called as an object method&nbsp;of a
+provisioning&nbsp;object ($provisioner-&gt;pre_capture())&nbsp;
+</strong> No Arguments</li>
+<li>Return Values
+<strong> 1
+<strong><em> ...
+** 0
+</em></strong> ...
+</strong> Undefined
+*** ...</li>
+</ul>
+  </div>
+  
+  <div id="footer">
+    <div class="copyright">
+      <p>
+        Copyright &copy; 2012 The Apache Software Foundation, Licensed under 
+        the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+        <br />
+        Apache and the Apache feather logo are trademarks of The Apache Software Foundation.
+      </p>
+    </div>
+  </div>
+  
+</body>
+</html>

Added: websites/staging/vcl/trunk/content/confluence_export/save-the-image.html
==============================================================================
--- websites/staging/vcl/trunk/content/confluence_export/save-the-image.html (added)
+++ websites/staging/vcl/trunk/content/confluence_export/save-the-image.html Tue Jan  8 16:38:15 2013
@@ -0,0 +1,135 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE- 2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+
+  <link href="/css/vcl.css" rel="stylesheet" type="text/css">
+  <link href="/css/code.css" rel="stylesheet" type="text/css">
+  <title>Apache VCL - Save the Image</title>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+
+<body>
+  <div id="sitetitle">
+    <table width="100%" border="0" cellspacing="0" cellpadding="5">
+      <tr>
+         <td><a href="/index.html"><img src="/img/vcl-logo.png" height="100" align="left" alt="Apache VCL logo"></a></td>
+         <td><a href="http://www.apache.org"><img src="/img/asf-logo.png" align="right" alt="Apache Software Foundation logo"></a></td>
+      </tr>
+    </table>
+  </div>
+
+  <div id="navigation"> 
+  <ul>
+<li>Information<ul>
+<li><a href="/info/about.html">What is VCL?</a></li>
+<li><a href="/info/features.html">Features</a></li>
+<li><a href="/info/architecture.html">Architecture</a></li>
+<li><a href="/info/use-cases.html">Use Cases</a></li>
+<li><a href="/downloads/download.cgi">Download</a></li>
+<li><a href="http://www.apache.org/licenses/LICENSE-2.0.html">License</a></li>
+<li><a href="/info/faq.html">FAQ</a></li>
+</ul>
+</li>
+<li><a href="/docs/index.html">Documentation</a><ul>
+<li><a href="/docs/using-vcl.html">Using VCL</a></li>
+<li><a href="/docs/image-creation.html">Image Creation</a></li>
+<li><a href="/docs/administration.html">Administration</a></li>
+<li><a href="/docs/installation.html">Installation</a></li>
+<li><a href="/docs/deployment-planning.html">Deployment Planning</a></li>
+</ul>
+</li>
+<li><a href="/comm/index.html">Community</a><ul>
+<li><a href="/comm/index.html#getInvolved">Getting Involved</a></li>
+<li><a href="/comm/index.html#mail-list">Mailing Lists</a></li>
+<li><a href="/comm/index.html#how-do-i-join-the-project">How can I Join</a></li>
+<li><a href="/comm/wiki.html">Wiki</a></li>
+<li><a href="/dev/index.html">Development</a><ul>
+<li><a href="/dev/jira.html">Issue Tracking</a></li>
+<li><a href="/dev/code-documentation.html">Code Documentation</a></li>
+<li><a href="/dev/roadmap.html">Roadmap</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a href="http://www.apache.org">Apache Software Foundation</a><ul>
+<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+<li><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
+</ul>
+</li>
+</ul>
+  </div>
+  
+  <div id="content">
+    <h1 class="title">Save the Image</h1>
+    <p>When you're finished configuring the remote computer and are ready to save
+the image:
+1. Log off of the remote VCL computer
+1. From your own machine, return to the <em>Current Reservations</em> page on the
+VCL website
+1. Select <em>Create Image</em>
+1. Here you may have two options, select one of them and click <em>Submit</em>
+<strong> Creating New Image - this creates a completely new image
+</strong> Update Existing Image - if you are the owner of the image, you can
+select this option to simply create a new revision of the image. The rest
+of these steps do not apply if you use this option. <a href="updating-an-existing-image.html">More information about updating an existing image</a>
+1. Enter a name for the new image. Keep it simple. It is a good idea to name
+it based off of the main applications installed or how the image will be
+used (i.e. if it is for a specific class, you could use the course number
+as the name). The image name is displayed when a user makes a reservation
+and can be changed later if needed.
+1. Fill in an image description - you can explain more about the image here.
+This information is displayed on the <em>New Reservations</em> page under the
+drop-down box for selecting the image.
+1. Optionally, fill in Usage Notes. If you would like to give users of the
+image some instructions about how to use the image, enter them here. This
+is displayed on the <em>Connect!</em> page so that users will see it right before
+they connect to the image.
+1. Optionally, fill in Revision Comments. This is just a place where you can
+enter notes for yourself. You can enter anything here, but these are some
+suggestions:
+<strong> list of applications installed
+</strong> any special steps you had to take to get an application to install
+<strong> if there is licensed software installed, when the license expires
+</strong> whether or not you installed system or software updates
+1. You can usually leave the <a href="advanced-image-options.html">Advanced Options</a>
+ alone
+1. Click <em>Confirm Image</em>
+1. Double check what was entered, then click <em>Add Image</em>
+1. You will then be presented with an Installer Agreement. If you agree to
+it, click <em>I agree</em> to start the imaging process</p>
+<p>The imaging process takes roughly 20-25 minutes to complete. Afterward, you
+should receive an email saying your image is ready for testing
+(occasionally, if there is a lot of software installed in the image or if
+the system is extremely busy, this can take as long as 90 minutes).</p>
+  </div>
+  
+  <div id="footer">
+    <div class="copyright">
+      <p>
+        Copyright &copy; 2012 The Apache Software Foundation, Licensed under 
+        the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+        <br />
+        Apache and the Apache feather logo are trademarks of The Apache Software Foundation.
+      </p>
+    </div>
+  </div>
+  
+</body>
+</html>