Create service definition for nova-serialproxy

Nova has the ability to do remote interactive consoles but there is no
easy way to enable this in devstack.  This change defines a service
called n-serial to enable the service.  Documentation is added to a
new guide on nova, describing how to set further options in local.conf

Change-Id: I401d94b2413c62bfae9b90d2214d77bd4cfc15d5
diff --git a/lib/nova b/lib/nova
index 74a3411..e9e78c7 100644
--- a/lib/nova
+++ b/lib/nova
@@ -566,6 +566,10 @@
     if is_service_enabled tls-proxy; then
         iniset $NOVA_CONF DEFAULT ec2_listen_port $EC2_SERVICE_PORT_INT
     fi
+
+    if is_service_enabled n-sproxy; then
+        iniset $NOVA_CONF serial_console enabled True
+    fi
 }
 
 function init_nova_cells {
@@ -764,6 +768,7 @@
     run_process n-xvnc "$NOVA_BIN_DIR/nova-xvpvncproxy --config-file $api_cell_conf"
     run_process n-spice "$NOVA_BIN_DIR/nova-spicehtml5proxy --config-file $api_cell_conf --web $SPICE_WEB_DIR"
     run_process n-cauth "$NOVA_BIN_DIR/nova-consoleauth --config-file $api_cell_conf"
+    run_process n-sproxy "$NOVA_BIN_DIR/nova-serialproxy --config-file $api_cell_conf"
 
     # Starting the nova-objectstore only if swift3 service is not enabled.
     # Swift will act as s3 objectstore.
@@ -794,7 +799,7 @@
     # Kill the nova screen windows
     # Some services are listed here twice since more than one instance
     # of a service may be running in certain configs.
-    for serv in n-api n-crt n-net n-sch n-novnc n-xvnc n-cauth n-spice n-cond n-cell n-cell n-api-meta n-obj; do
+    for serv in n-api n-crt n-net n-sch n-novnc n-xvnc n-cauth n-spice n-cond n-cell n-cell n-api-meta n-obj n-sproxy; do
         stop_process $serv
     done
 }