+ <title>node_id</title>
+
+ <para>An integer unique identifier for a specific node.</para>
+ </section>
+
+ <section>
+ <title>node_key</title>
+
+ <para>This is a per-node, unique value that forms the basis of the node
+ authentication mechanism detailed below. When a new node record is added
+ to the MA by a principal, it is automatically assigned a new, random
+ key, and distributed out of band to the nodes. This shared secret is
+ then used for node authentication. The contents of node_key are
+ generated using this command:</para>
+
+ <para><programlisting>openssl rand -base64 32</programlisting></para>
+
+ <para>Any = (equals) characters are removed from the string.</para>
+ </section>
+
+ <section>
+ <title>boot_state</title>
+
+ <para>Each node always has one of four possible boot states, stored as a
+ string, refered to as boot_state. These are:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>'inst'</para>
+
+ <para>Install. The boot state cooresponds to a new node that has not
+ yet been installed, but record of it does exist. When the boot
+ manager starts, and the node is in this state, the user is prompted
+ to continue with the installation. The intention here is to prevent
+ a non-PlanetLab machine (like a user's desktop machine) from
+ becoming inadvertantly wiped and installed with the PlanetLab node
+ software. This is the default state for new nodes.</para>
+ </listitem>
+
+ <listitem>
+ <para>'rins'</para>
+
+ <para>Reinstall. In this state, a node will reinstall the node
+ software, erasing anything that might have been on the disk
+ before.</para>
+ </listitem>
+
+ <listitem>
+ <para>'boot'</para>
+
+ <para>Boot. This state cooresponds with nodes that have sucessfully
+ installed, and can be chain booted to the runtime node
+ kernel.</para>
+ </listitem>
+
+ <listitem>
+ <para>'dbg'</para>
+
+ <para>Debug. Regardless of whether or not a machine has been
+ installed, this state sets up a node to be debugged by
+ administrators.</para>
+ </listitem>
+ </orderedlist>
+ </section>
+ </section>
+
+ <section>
+ <title>Existing Management Authority API Calls</title>
+
+ <para>These calls, take from the PlanetLab Core Specification and extended
+ with additional parameters, are used by Principals to maintain the set of
+ nodes managed by a MA. See the Core Specification for more information.
+ The MA may provide an easy to use interface, such as a web interface, that
+ calls these directly.</para>
+
+ <para><itemizedlist>
+ <listitem>
+ <para>AddNode( authentication, node_values )</para>
+
+ <para>Add a new node record. node_values contains hostname,
+ ipaddress, and the new fields: boot_state. The resultant node_id is
+ returned.</para>
+ </listitem>
+
+ <listitem>
+ <para>UpdateNode( authentication, node_id, update_values )</para>