1. 22 Sep, 2011 1 commit
  2. 17 Aug, 2011 1 commit
  3. 11 Aug, 2011 1 commit
    • Mike Hibler's avatar
      Initial support for loading Windows7 .wim images via WinPE/ImageX. · ac711ea5
      Mike Hibler authored
      1. Support for "one-shot" PXE booting ala the one-shot osid. Switches to
         pxelinux to boot WinPE and then switch back after done. Painful now
         because we have to HUP dhcpd everytime we change the PXE path, but we
         may be able to fix this in the future by going all-pxelinux-all-the-time.
      
      2. Added pxe_select, analogous to os_select, for changing the pxe_boot_path
         including the one time path.
      
      3. Added the WIMRELOAD state machine to shepherd a node through the process.
         Still has some rough edges and may need refining.
      ac711ea5
  4. 29 Jun, 2011 1 commit
    • Mike Hibler's avatar
      Allow for more flexible setup of pxe_boot_path. · 2abf13da
      Mike Hibler authored
      If nodes.pxe_boot_path is set to '/tftpboot/pxelinux/<something>', then
      dhcpd_makeconf will set the (pxeboot) filename to /tftpboot/pxelinux.0
      and symlink the node's config file (/tftpboot/pxelinux.cfg/<mac>) to
      /tftpboot/pxelinux.cfg/<something>.
      
      In other words, we can customize pxelinux to some small degree, using one
      of some small number of pre-existing configurations. We were using pxelinux
      before for plab-in-elab and we will also need it for loading WinPE for
      configuring Windows7 images. For the latter we will set the pxe_boot_path
      to /tftpboot/pxelinux/winpe.
      
      Anyway, ideally we would allow the user to specify a pxelinux config file
      through the NS file, but need to think about the implications of that some
      more. Small steps...
      2abf13da
  5. 31 May, 2011 1 commit
    • Ryan Jackson's avatar
      Restart dhcpd on all subbosses · 4fb4ab9c
      Ryan Jackson authored
      When rebuilding the dhcpd.conf file, make sure to restart dhcpd on all
      subbosses and not just the ones that are listed in the subbosses
      table.  Otherwise if all nodes are moved from one subboss to another
      the old subboss will continue to try serving dhcp leases when it
      shouldn't.
      4fb4ab9c
  6. 29 Jun, 2010 1 commit
  7. 15 Jun, 2010 1 commit
  8. 11 Jun, 2010 2 commits
  9. 23 Apr, 2010 1 commit
  10. 12 Apr, 2010 1 commit
    • Ryan Jackson's avatar
      Add support for subbosses to dhcpd_makeconf · 1d2fa1a9
      Ryan Jackson authored
      Make sure we correctly handle subbosses by:
      A) ignoring nodes which are assigned to other dhcp servers
      B) correctly specifying the next-server and bootinfo options
         if boss is still the dhcp server and other subbosses are to
         handle those duties.
      1d2fa1a9
  11. 24 Feb, 2010 1 commit
    • Ryan Jackson's avatar
      Add node attribute for specifying bootinfo server · ed105035
      Ryan Jackson authored
      Add the bootinfo_server attribute for specifying the bootinfo server the
      node should use during the boot process.  If not specified the node will
      default to trying the tftp server and dhcp server, in that order.
      
      PXE vendor option 128 is used to communicate this to the NBP. Options
      128-254 are available for NBP-specific use according to the PXE spec, so
      we're safe using it.
      ed105035
  12. 30 Nov, 2009 1 commit
  13. 07 Dec, 2006 1 commit
    • Russ Fish's avatar
      Update setup{,-ops}.txt for FreeBSD-6.1 . · 5ffb5664
      Russ Fish authored
      The packagedir is now passed to {ops,boss}-install with a -p argument instead of
      as a PKG_PATH envar.  If the old way is done, PKG_PATH is ignored and packages are
      all built from sources.  This failed in many ways (due to sync problems between the
      6.1 packages and ports tarballs?)  In any case, to prevent others falling down the
      same rabbit-hole, building from sources is now off by default, requiring a -s
      argument to be given to do it.  Libinstall now shows PhaseSkip reasons, to make
      it more clear what's going on.
      
      Also tweak dhcpd_makeconf to handle a null DHCPD_DYNRANGE in the defs file,
      to prevent a bogus dhcpd response from an inner emulab, half set-up for testing.
      5ffb5664
  14. 27 Nov, 2006 1 commit
  15. 18 Jul, 2006 1 commit
    • Leigh Stoller's avatar
      Changes necessary for moving most of the stuff in the node_types · 624a0364
      Leigh Stoller authored
      table, into a new table called node_type_attributes, which is intended
      to be a more extensible way of describing nodes.
      
      The only things left in the node_types table will be type,class and the
      various isXXX boolean flags, since we use those in numerous joins all over
      the system (ie: when discriminating amongst nodes).
      
      For the most part, all of that other stuff is rarely used, or used in
      contexts where the information is needed, but not for type descrimination.
      Still, it made for a lot of queries to change!
      
      Along the way I added a NodeType library module that represents the type
      info as a perl object. I also beefed up the existing Node module, and
      started using it in more places. I also added an Interfaces module, but I
      have not done much with that yet.
      
      I have not yet removed all the slots from the node_types table; I plan to
      run the new code for a few days and then remove the slots.
      
      Example using the new NodeType object:
      
      	use NodeType;
      
      	my $typeinfo = NodeType->Lookup($type);
      
              if ($typeinfo->control_interface(\$control_iface) ||
                  !$control_iface) {
        	    warn "No control interface for $type is defined in the DB!\n";
              }
      
      or using the Node:
      
      	use Node;
      
              my $nodeobject = Node->Lookup($node_id);
              my $imageable  = $nodeobject->NodeTypeInfo()->imageable();
      or
              my $rebootable = $nodeobject->isrebootable();
      or
              $nodeobject->NodeTypeAttribute("control_interface", \$control_iface);
      
      Lots of way to accomplish the same thing, but the main point is that the
      Node is able to override the NodeType (if it wants to), which I think is
      necessary for flexibly describing one/two of a kind things like switches, etc.
      624a0364
  16. 16 May, 2006 2 commits
  17. 11 May, 2006 2 commits
    • Mike Hibler's avatar
      Minor tweaks: · 0226e083
      Mike Hibler authored
      dhcpd_makeconf.in: leave the hostname setting for plabinelab nodes
      nfree.in: make sure that if we free a plabinelab or elabinelab node,
                that we reset the dhcpd.conf file
      0226e083
    • Mike Hibler's avatar
      Initial support for plab-in-elab: · 088c8e74
      Mike Hibler authored
      * setup some fields that parallel the
        elab-in-elab ones, for modifying the dhcpd.conf file.
      
      * tb-set-node-plab-role to set a node as either 'plc' or 'node'
        used to set the DB role field above
      088c8e74
  18. 10 Apr, 2006 1 commit
  19. 29 Mar, 2006 1 commit
    • Mike Hibler's avatar
      Ressurect the nodes table pxe_boot_path column to allow specifying · dce80595
      Mike Hibler authored
      an alternate "filename" for the dhcpd.conf file.  "Inner plabs" are likely
      to need this (to boot pxelinux for emulating the plab boot CD).
      
      dhcpd_makeconf picks up the DB field and sets the filename field accordingly.
      
      nfree will invoke dhcpd_makeconf if any node being freed has a non-NULL
      pxe_boot_path value, in order to reset it.
      dce80595
  20. 07 Sep, 2005 1 commit
    • Mike Hibler's avatar
      Inner-elab role changes: · 88926d1c
      Mike Hibler authored
      	'boss' -> 'boss+router'
      	'ops'  -> 'ops+fs'
      	'fs'      (new role)
      	'router'  (new role)
      
      These are in preparation for allowing configurations with split ops and fs
      nodes (and sometime down the road, split boss and router nodes).
      
      This checkin is just the DB state changes along with the scripts that look
      at that state.  The Big One, which actually sets up separate nodes
      automatically, is undergoing more testing but will be Coming Soon.
      88926d1c
  21. 12 May, 2005 1 commit
    • Leigh Stoller's avatar
      Part of my changes to support swapmod of ElabInElab experiments. I needed · 283e27fd
      Leigh Stoller authored
      to get this change in cause it also includes some DHCPD conf changes and
      Mike and I were messing each other up.
      
      * The DHCPD change is that instead of using reserved.inner_elab_role
        as the flag to indicate a node should boot inside or outside, I
        added inner_elab_boot, which is a boolean that I set when its
        actually time to do this. This avoids two ElabInElab swapins at the
        same time from messing each other up! Basically avoids the obvious
        race.
      
      * The rest of the changes are for swapmod itself, which are incomplete
        but should be harmless until the rest of the stuff is ready.
      283e27fd
  22. 04 May, 2005 1 commit
  23. 06 Dec, 2004 1 commit
  24. 09 Nov, 2004 1 commit
  25. 26 Oct, 2004 1 commit
    • Leigh Stoller's avatar
      Pump up dhcpd_makeconf ... · 29b8c214
      Leigh Stoller authored
      * Add -i option to install the new dhcpd file into place, backing up
        the old version. Does not restart dhcpd though; that is left to
        someone else at the moment. May change later. Without -i, works as
        before, writing the new config file to stdout. Of course, must use
        the standard locking protocol to serialize when using -i, lest we
        end up with a garbled dhcpd.conf file.
      
      * Add -t option to specify the template file. Changed default
        behaviour so that without any args, uses the template file in
        /usr/local/etc. Together with -i option, this moves the two
        hardwired paths to a single place (script).
      
      * Changed how utiils/newnode script calls dhcpd_makeconf (call with
        just -i option to let dhcpd_makeconf handle all that icky stuff).
      
      * Changed how install/boss-install script calls dhcpd_makeconf (call with
        just -i option to let dhcpd_makeconf handle all that icky stuff).
      
      * Also change boss-install to use install target in dhcpd directory,
        to install the template file.
      29b8c214
  26. 30 Sep, 2004 1 commit
  27. 26 Aug, 2003 1 commit
  28. 28 Apr, 2003 1 commit
  29. 27 Mar, 2003 1 commit
  30. 04 Jul, 2002 1 commit
  31. 16 Jan, 2002 1 commit
  32. 15 Jan, 2002 1 commit
  33. 02 Oct, 2001 1 commit
  34. 27 Sep, 2001 1 commit
    • Robert Ricci's avatar
      Lib-ification. These scripts have been changed from using the Mysql module to · 4c11aa5d
      Robert Ricci authored
      using the libdb library. They have also been cleaned up somewhat, with more
      comments added, etc.
      
      I've merged nodeip and mac2if, which had very similar functions. The merged
      version goes under the name nodeip.
      
      Lastly, I've added some access checks to db2ns and node_status, to make sure
      they're only called by the right people.
      4c11aa5d
  35. 12 Jul, 2001 1 commit
    • Robert Ricci's avatar
      New script: dhcpd_makeconf · fbb56b98
      Robert Ricci authored
      Usage: dhcpd_makeconf [-h] [-v] <templatefile>
      templatefile should be a skeleton dhcp.conf file, without entires for each node.
      The string '%%nodetype=<type>' will be expanded to entries for all nodes of type
      <type> in the following form:
      host $ip {
      	hardware ethernet $mac;
      	option host-name '$node_id';
      	fixed_address $ip;
      }
      
      The generated dhcp conf file is printed on stdout.
      
      The -v option causes dhcpd_makeconf to use virtual names, rather than
      physical ones, for hostnames.
      fbb56b98