list all of the files that belong to the native package
[myplc.git] / db-config
index e572d5a..a773320 100755 (executable)
--- a/db-config
+++ b/db-config
@@ -7,7 +7,7 @@
 # Mark Huang <mlhuang@cs.princeton.edu>
 # Copyright (C) 2006 The Trustees of Princeton University
 #
-# $Id$
+# $Id: db-config,v 1.22 2007/02/02 23:40:22 mlhuang Exp $
 #
 
 from plc_config import PLCConfiguration
@@ -54,7 +54,7 @@ def main():
              'name': plc['name'] + " Central",
              'abbreviated_name': plc['name'],
              'login_base': plc['slice_prefix'],
-             'is_public': False,
+             'is_public': True,
              'url': url,
              'max_slices': 100 }
 
@@ -516,31 +516,37 @@ def main():
          'min_role_id': 10},
 
         # Bandwidth limits
-        {'name': "net_min",
-         'description': "Minimum bandwidth (bps)",
+        {'name': "net_min_rate",
+         'description': "Minimum bandwidth (kbps)",
          'min_role_id': 10},
-        {'name': "net_max",
-         'description': "Maximum bandwidth (bps)",
+        {'name': "net_max_rate",
+         'description': "Maximum bandwidth (kbps)",
          'min_role_id': 10},
-        {'name': "net_avg",
-         'description': "Average bandwidth (bps)",
+        {'name': "net_i2_min_rate",
+         'description': "Minimum bandwidth over I2 routes (kbps)",
          'min_role_id': 10},
-        {'name': "net_share",
-         'description': "Number of bandwidth shares",
+        {'name': "net_i2_max_rate",
+         'description': "Maximum bandwidth over I2 routes (kbps)",
          'min_role_id': 10},
-        {'name': "net2_min",
-         'description': "Minimum bandwidth over routes exempt from node bandwidth limits (bps)",
+        {'name': "net_max_kbyte",
+         'description': "Maximum daily network Tx KByte limit.",
          'min_role_id': 10},
-        {'name': "net2_max",
-         'description': "Maximum bandwidth over routes exempt from node bandwidth limits (bps)",
+        {'name': "net_thresh_kbyte",
+         'description': "KByte limit before warning and throttling.",
          'min_role_id': 10},
-        {'name': "net2_avg",
-         'description': "Average bandwidth over routes exempt from node bandwidth limits (bps)",
+        {'name': "net_i2_max_kbyte",
+         'description': "Maximum daily network Tx KByte limit to I2 hosts.",
          'min_role_id': 10},
-        {'name': "net2_share",
-         'description': "Number of bandwidth shares over routes exempt from node bandwidth limits",
+        {'name': "net_i2_thresh_kbyte",
+         'description': "KByte limit to I2 hosts before warning and throttling.",
          'min_role_id': 10},
-
+        {'name': "net_share",
+         'description': "Number of bandwidth shares",
+         'min_role_id': 10},
+        {'name': "net_i2_share",
+         'description': "Number of bandwidth shares over I2 routes",
+         'min_role_id': 10},
         # Disk quota
         {'name': "disk_max",
          'description': "Disk quota (1k disk blocks)",
@@ -575,17 +581,6 @@ def main():
         else:
             UpdateSliceAttributeType(default_attribute_type['name'], default_attribute_type)
 
-    # Get contents of SSL public certificate used for signing slice tickets
-    try:
-        plc_ticket_pubkey = ""
-        for line in file(plc_ma_sa['ca_ssl_key_pub']):
-            # Skip comments
-            if line[0:5] != "-----":
-                # XXX The embedded newlines matter, do not strip()!
-                plc_ticket_pubkey += line
-    except:
-        plc_ticket_pubkey = '%KEY%'
-
     # Create/update system slices
     legacy_slices = [
         # XXX Required for old Node Manager
@@ -597,7 +592,7 @@ def main():
          'expires': sys.maxint,
          'attributes': [('plc_slice_type', "VServerSlice"),
                         ('plc_agent_version', "1.0"),
-                        ('plc_ticket_pubkey', plc_ticket_pubkey)]},
+                        ('plc_ticket_pubkey', "")]},
 
         # XXX Required for old Node Manager
         {'name': "pl_conf_vserverslice",
@@ -662,6 +657,18 @@ def main():
             if (name, value) not in slice_attributes:
                 AddSliceAttribute(slice['name'], name, value)
 
+    installfailed = """
+Once the node meets these requirements, please reinitiate the install
+by visiting:
+
+https://%(PLC_WWW_HOST)s:%(PLC_WWW_SSL_PORT)d/db/nodes/?id=%(node_id)d
+
+Click the Reinstall link, then reboot the node.
+
+If you have already performed this step and are still receiving this
+message, please reply so that we may investigate the problem.
+"""
+
     # Load default message templates
     message_templates = [
         {'message_id': 'Verify account',
@@ -674,19 +681,6 @@ https://%(PLC_WWW_HOST)s:%(PLC_WWW_SSL_PORT)d/db/persons/register.php?id=%(perso
 
 If you did not register for a %(PLC_NAME)s account, please ignore this
 message, or contact %(PLC_NAME)s Support <%(PLC_MAIL_SUPPORT_ADDRESS)s>.
-"""
-         },
-
-        {'message_id': 'New administrator account',
-         'subject': "New administrator account registration from %(first_name)s %(last_name)s <%(email)s>",
-         'template': """
-%(first_name)s %(last_name)s <%(email)s> has signed up for a new
-administrator account.
-
-Only current %(PLC_NAME)s administrators may enable new administrator
-accounts. To deny the request or enable the account, visit:
-
-https://%(PLC_WWW_HOST)s:%(PLC_WWW_SSL_PORT)d/db/persons/index.php?id=%(person_id)d
 """
          },
 
@@ -694,7 +688,7 @@ https://%(PLC_WWW_HOST)s:%(PLC_WWW_SSL_PORT)d/db/persons/index.php?id=%(person_i
          'subject': "New PI account registration from %(first_name)s %(last_name)s <%(email)s> at %(site_name)s",
          'template': """
 %(first_name)s %(last_name)s <%(email)s> has signed up for a new
-%(PLC_NAME) account at %(site_name)s and has requested a PI role. PIs
+%(PLC_NAME)s account at %(site_name)s and has requested a PI role. PIs
 are responsible for enabling user accounts, creating slices, and
 ensuring that all users abide by the %(PLC_NAME)s Acceptable Use
 Policy.
@@ -713,7 +707,7 @@ https://%(PLC_WWW_HOST)s:%(PLC_WWW_SSL_PORT)d/db/persons/index.php?id=%(person_i
          'subject': "New account registration from %(first_name)s %(last_name)s <%(email)s> at %(site_name)s",
          'template': """
 %(first_name)s %(last_name)s <%(email)s> has signed up for a new
-%(PLC_NAME) account at %(site_name)s and has requested the following
+%(PLC_NAME)s account at %(site_name)s and has requested the following
 roles: %(roles)s.
 
 To deny the request or enable the account, visit:
@@ -752,6 +746,140 @@ https://%(PLC_WWW_HOST)s:%(PLC_WWW_SSL_PORT)d/db/persons/index.php?id=%(person_i
 If you did not request that your password be reset, please contact
 %(PLC_NAME)s Support <%(PLC_MAIL_SUPPORT_ADDRESS)s>. Do not quote or
 otherwise include any of this text in any correspondence.
+"""
+         },
+
+        # Boot Manager messages
+        {'message_id': "installfinished",
+         'subject': "%(hostname)s completed installation",
+         'template': """
+%(hostname)s just completed installation.
+
+The node should be usable in a couple of minutes if installation was
+successful.
+"""
+         },
+
+        {'message_id': "insufficientdisk",
+         'subject': "%(hostname)s does not have sufficient disk space",
+         'template': """
+%(hostname)s failed to boot because it does not have sufficent disk
+space, or because its disk controller was not recognized.
+
+Please replace the current disk or disk controller or install
+additional disks to meet the current hardware requirements.
+""" + installfailed
+         },
+
+        {'message_id': "insufficientmemory",
+         'subject': "%(hostname)s does not have sufficient memory",
+         'template': """
+%(hostname)s failed to boot because it does not have sufficent
+memory.
+
+Please install additional memory to meet the current hardware
+requirements.
+""" + installfailed
+         },
+
+        {'message_id': "authfail",
+         'subject': "%(hostname)s failed to authenticate",
+         'template':
+"""
+%(hostname)s failed to authenticate for the following reason:
+
+%(fault)s
+
+The most common reason for authentication failure is that the
+authentication key stored in the node configuration file, does not
+match the key on record. Regenerate the node configuration file by
+visiting:
+
+https://%(PLC_WWW_HOST)s:%(PLC_WWW_SSL_PORT)d/db/nodes/?id=%(node_id)d
+
+Click the Configuration File link, and save the downloaded file as
+plnode.txt on either a floppy disk or a USB flash drive. Click the
+Boot link, then reboot the node.
+
+If you have already performed this step and are still receiving this
+message, please reply so that we may investigate the problem.
+"""
+         },
+
+        {'message_id': "notinstalled",
+         'subject': "%(hostname)s is not installed",
+         'template':
+"""
+%(hostname)s failed to boot because it has either never been
+installed, or the installation is corrupt.
+
+Please check if the hard drive has failed, and replace it if so. After
+doing so, visit:
+
+https://%(PLC_WWW_HOST)s:%(PLC_WWW_SSL_PORT)d/db/nodes/?id=%(node_id)d
+
+Click the Reinstall link, then reboot the node.
+
+If you have already performed this step and are still receiving this
+message, please reply so that we may investigate the problem.
+"""
+         },
+
+        {'message_id': "hostnamenotresolve",
+         'subject': "%(hostname)s does not resolve",
+         'template':
+"""
+%(hostname)s failed to boot because its hostname does not resolve, or
+does resolve but does not match its configured IP address.
+
+Please check the network settings for the node, especially its
+hostname, IP address, and DNS servers, by visiting:
+
+https://%(PLC_WWW_HOST)s:%(PLC_WWW_SSL_PORT)d/db/nodes/?id=%(node_id)d
+
+Correct any errors, click the Reinstall link, then reboot the node.
+
+If you have already performed this step and are still receiving this
+message, please reply so that we may investigate the problem.
+"""
+         },
+
+        # XXX N.B. I don't think these are necessary, since there's no
+        # way that the Boot Manager would even be able to contact the
+        # API to send these messages.
+
+        {'message_id': "noconfig",
+         'subject': "%(hostname)s does not have a configuration file",
+         'template': """
+%(hostname)s failed to boot because it could not find a PlanetLab
+configuration file. To create this file, visit:
+
+https://%(PLC_WWW_HOST)s:%(PLC_WWW_SSL_PORT)d/db/nodes/?id=%(node_id)d
+
+Click the Configuration File link, and save the downloaded file as
+plnode.txt on either a floppy disk or a USB flash drive. Click the
+Reinstall link, then reboot the node.
+
+If you have already performed this step and are still receiving this
+message, please reply so that we may investigate the problem.
+"""
+         },
+
+        {'message_id': "nodetectednetwork",
+         'subject': "%(hostname)s has unsupported network hardware",
+         'template':
+"""
+
+%(hostname)s failed to boot because it has network hardware that is
+unsupported by the current production kernel. If it has booted
+successfully in the past, please try re-installing it by visiting:
+
+https://%(PLC_WWW_HOST)s:%(PLC_WWW_SSL_PORT)d/db/nodes/?id=%(node_id)d
+
+Click the Reinstall link, then reboot the node.
+
+If you have already performed this step and are still receiving this
+message, please reply so that we may investigate the problem.
 """
          },
         ]