From 4de0fa981e8e2b14fa0f65a35d084eecfc0ee754 Mon Sep 17 00:00:00 2001
From: Iustin Pop <iustin@google.com>
Date: Thu, 22 Nov 2007 13:51:35 +0000
Subject: [PATCH] Add man page for the ganeti-master script

This patch adds a simple man page for the master startup script and
modifies the footer.sgml fragment to include it.

Reviewed-by: imsnah
---
 man/Makefile.am        |   5 +-
 man/footer.sgml        |   6 +-
 man/ganeti-master.sgml | 140 +++++++++++++++++++++++++++++++++++++++++
 3 files changed, 148 insertions(+), 3 deletions(-)
 create mode 100644 man/ganeti-master.sgml

diff --git a/man/Makefile.am b/man/Makefile.am
index 3cb505716..e7ce9d0fa 100644
--- a/man/Makefile.am
+++ b/man/Makefile.am
@@ -1,13 +1,14 @@
 # Build man pages
 
 man_MANS = ganeti.7 ganeti-os-interface.7 gnt-cluster.8 gnt-node.8 gnt-os.8 \
-	   gnt-instance.8 ganeti-noded.8 ganeti-watcher.8 gnt-backup.8
+	   gnt-instance.8 ganeti-noded.8 ganeti-watcher.8 gnt-backup.8 \
+	   ganeti-master.8
 
 maninput = $(patsubst %.7,%.in,$(patsubst %.8,%.in,$(man_MANS)))
 
 EXTRA_DIST = ganeti-os-interface.sgml gnt-cluster.sgml gnt-node.sgml \
 	     ganeti-watcher.sgml ganeti.sgml gnt-instance.sgml gnt-os.sgml \
-	     gnt-backup.sgml ganeti-noded.sgml \
+	     gnt-backup.sgml ganeti-noded.sgml ganeti-master.sgml \
 	     footer.sgml $(maninput)
 CLEANFILES = *.[78]
 MAINTAINERCLEANFILES = $(maninput)
diff --git a/man/footer.sgml b/man/footer.sgml
index 40075e7dd..46349165e 100644
--- a/man/footer.sgml
+++ b/man/footer.sgml
@@ -53,7 +53,11 @@
       <citerefentry>
         <refentrytitle>ganeti-noded</refentrytitle>
         <manvolnum>8</manvolnum>
-      </citerefentry> (node daemon).
+      </citerefentry> (node daemon),
+      <citerefentry>
+        <refentrytitle>ganeti-master</refentrytitle>
+        <manvolnum>8</manvolnum>
+      </citerefentry> (the master startup script).
     </para>
 
   </refsect1>
diff --git a/man/ganeti-master.sgml b/man/ganeti-master.sgml
new file mode 100644
index 000000000..cc0a4a35a
--- /dev/null
+++ b/man/ganeti-master.sgml
@@ -0,0 +1,140 @@
+<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
+
+  <!-- Please adjust the date whenever revising the manpage. -->
+  <!ENTITY dhdate      "<date>November 22, 2007</date>">
+  <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
+       allowed: see man(7), man(1). -->
+  <!ENTITY dhsection   "<manvolnum>8</manvolnum>">
+  <!ENTITY dhucpackage "<refentrytitle>ganeti-master</refentrytitle>">
+  <!ENTITY dhpackage   "ganeti-master">
+
+  <!ENTITY debian      "<productname>Debian</productname>">
+  <!ENTITY gnu         "<acronym>GNU</acronym>">
+  <!ENTITY gpl         "&gnu; <acronym>GPL</acronym>">
+  <!ENTITY footer SYSTEM "footer.sgml">
+]>
+
+<refentry>
+  <refentryinfo>
+    <copyright>
+      <year>2006</year>
+      <year>2007</year>
+      <holder>Google Inc.</holder>
+    </copyright>
+    &dhdate;
+  </refentryinfo>
+  <refmeta>
+    &dhucpackage;
+
+    &dhsection;
+    <refmiscinfo>ganeti 1.2</refmiscinfo>
+  </refmeta>
+  <refnamediv>
+    <refname>&dhpackage;</refname>
+
+    <refpurpose>ganeti master startup script</refpurpose>
+  </refnamediv>
+  <refsynopsisdiv>
+    <cmdsynopsis>
+      <command>&dhpackage; </command>
+      <arg>-d</arg>
+      <group choice="req">
+        <arg>start</arg>
+        <arg>stop</arg>
+      </group>
+
+    </cmdsynopsis>
+  </refsynopsisdiv>
+  <refsect1>
+    <title>DESCRIPTION</title>
+
+    <para>
+      The <command>&dhpackage;</command> is the program that activates
+      the cluster IP on the master node.
+    </para>
+
+    <para>
+      The script will first check to see if the IP is not already
+      alive on the cluster (on another node). If so, it wil abort the
+      startup.
+    </para>
+
+    <para>
+      If the master IP is unreachable, the script will add the IP to
+      the <literal>master_netdev</literal> interface (as configured at
+      cluster init time) with the label the name of the interface plus
+      <quote>:0</quote>, so that the new IP shows up as a
+      subinterface. After that, it will send three gratuitous ARP
+      updates so that the switch updates its tables immediatly
+      (instead of after expiry).
+    </para>
+
+  </refsect1>
+
+  <refsect1>
+    <title>Exit codes</title>
+    <variablelist>
+      <varlistentry>
+        <term>0</term>
+        <listitem>
+          <simpara>successfull exit, IP activated</simpara>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>1</term>
+        <listitem>
+          <simpara>failed to add the IP to the interface</simpara>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>11</term>
+        <listitem>
+          <simpara>this node doesn't have the master role, no action
+            taken</simpara>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>12</term>
+        <listitem>
+          <simpara>the configuration of the node is not complete; most
+          probably, this node is not part of a cluster</simpara>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>13</term>
+        <listitem>
+          <simpara>the IP is reachable on the network, activation
+            aborted</simpara>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>14</term>
+        <listitem>
+          <simpara>argument error - the script should be called with
+          either the <option>start</option> or <option>stop</option>
+          arguments</simpara>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refsect1>
+
+  &footer;
+
+</refentry>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:2
+sgml-indent-data:t
+sgml-parent-document:nil
+sgml-default-dtd-file:nil
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+-->
-- 
GitLab