first draft of a deployment-friendly bootmanager
Thierry Parmentelat [Wed, 13 Jan 2010 16:52:45 +0000 (16:52 +0000)]
  attempt to make some sense of the various locations used
move the nodeconfig script, as well as the plc.d script,
  into bootmanager, where it belongs

boot/index.php [deleted file]
boot/uudecode.gz [deleted file]

diff --git a/boot/index.php b/boot/index.php
deleted file mode 100755 (executable)
index 9afe279..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-<?php
-//
-// Returns node boot script
-//
-// Mark Huang <mlhuang@cs.princeton.edu>
-// Copyright (C) 2006 The Trustees of Princeton University
-//
-// $Id$ $
-//
-
-// Get admin API handle
-require_once 'plc_api.php';
-global $adm;
-
-// Default bootmanager
-$bootmanager = "bootmanager.sh.sgn";
-
-// Look up the node
-$interfaces = $adm->GetInterfaces(array('ip' => $_SERVER['REMOTE_ADDR']));
-if (!empty($interfaces)) {
-  $nodes = $adm->GetNodes(array($interfaces[0]['node_id']));
-  if (!empty($nodes)) {
-    $node = $nodes[0];
-  }
-}
-
-if (isset($node)) {
-  // Allow very old nodes that do not have a node key in their
-  // configuration files to use their "boot nonce" instead. The boot
-  // nonce is a random value generated by the node itself and POSTed
-  // by the Boot CD when it requests the Boot Manager. This is
-  // obviously not very secure, so we only allow it to be used if the
-  // requestor IP is the same as the IP address we have on record for
-  // the node.
-
-  // 3.x CDs post 'version', 2.x CDs post 'id'.
-  if (!empty($_REQUEST['version'])) {
-    $version = trim($_REQUEST['version']);
-  } elseif (!empty($_REQUEST['id'])) {
-    $version = trim($_REQUEST['id']);
-  } else {
-    $version = "2.0";
-  }
-
-  if (empty($node['key']) && !empty($_REQUEST['nonce'])) {
-    // 3.x CDs post the boot nonce in ASCII hex. 2.x CDs post it in binary.
-    if (strstr($version, "2.0") === FALSE) {
-      // 3.x CDs post a trailing newline...sigh
-      $nonce = trim($_REQUEST['nonce']);
-    } else {
-      $nonce = bin2hex($_REQUEST['nonce']);
-    }
-    $adm->UpdateNode($node['node_id'], array('boot_nonce' => $nonce));
-  }
-
-  // Custom bootmanager for the node, e.g.
-  // planetlab-1.cs.princeton.edu_bootmanager.sh.sgn
-  $bootmanagers = array(strtolower($node['hostname']) . "_" . $bootmanager);
-
-  // Custom bootmanager for the node group, e.g.
-  // alpha_bootmanager.sh.sgn
-  if (!empty($node['nodegroup_ids'])) {
-    $nodegroups = $adm->GetNodeGroups($node['nodegroup_ids']);
-    foreach ($nodegroups as $nodegroup) {
-      $bootmanagers[] = strtolower($nodegroup['groupname']) . "_" . $bootmanager;
-    }
-  }
-}
-
-// Default bootmanager
-$bootmanagers[] = $bootmanager;
-
-foreach ($bootmanagers as $bootmanager) {
-  if (file_exists($bootmanager)) {
-    readfile($bootmanager);
-    exit();
-  }
-}
-
-?>
diff --git a/boot/uudecode.gz b/boot/uudecode.gz
deleted file mode 100755 (executable)
index 040c34f..0000000
Binary files a/boot/uudecode.gz and /dev/null differ