1. 24 Jul, 2012 1 commit
    • Mike Hibler's avatar
      Add a 'disabled' field to the subbosses table. · e08bfeec
      Mike Hibler authored
      This allows us to more easily disable a subboss in the event of a temporary
      subboss outage (e.g., hardware failure). Previously we would have to remove
      the related rows from the DB and restore them later.
      e08bfeec
  2. 03 May, 2012 1 commit
  3. 27 Mar, 2012 1 commit
    • Leigh Stoller's avatar
      Bunch of changes for "management" interfaces (ilo,drac,etc); make · 85b81867
      Leigh Stoller authored
      management interfaces more of a first class citizen instead of a
      hack. New script:
      
      management_iface -t <type> -a [key|pswd] [-s <switchinfo>]
                              <node_id> mac IP arg1 arg2
      management_iface -r <node_id>
        -h       This message
        -t type  Management type; ilo, ilo2, drac
        -s info  Optional switch info; switch,card,port
        -s -     Search output of switchmac to find switch info
        -a pswd  Password auth; provide login and password.
        -a key   SSH key auth; provide login and key path.
        -r       Remove management interface from DB.
      
      which adds the management interface to the database (interfaces,
      outlets and outlets_remoteauth. Optionally adds the wires table
      entry if you add -s option. Uses switchmac to find the switch info or
      you can specify it on the command line. So for example, here is what I
      did to add the ilo2 interface for a node:
      
      management_iface -t ilo2 -a pswd -s - pc1 e8:39:35:ae:c9:7c \
                       155.98.34.100 elabman mypasswd
      or
      management_iface -t ilo2 -a key -s - pc1 e8:39:35:ae:c9:7c \
                       155.98.34.100 elabman /root/.ssh/somekey
      
      Of course someone had to have added the elabman user and key or
      password to the ilo config via its interface. 
      
      * dhcpd_makeconf will add local node management interfaces to the
        config file. We can set them to dhcp instead of hardwiring the IP in
        the management interface.
      
      * The DB changes add a management type to the enums in the interfaces
        and wires table, and updates the existing interface entries.
      85b81867
  4. 09 Mar, 2012 1 commit
    • Mike Hibler's avatar
      Add a node-default pxe_boot_path to go along with node-type-default. · 99a462a8
      Mike Hibler authored
      As if things weren't hairy enough for the pxe_boot_path, we need a per-node
      default value. This should not be confused with the next_pxe_boot_path or
      pxe_boot_path fields in the nodes table, which is a per-node value but only
      for the lifetime of the current experiment.
      
      We need this new field specifically so that we can switch some, but not all,
      of the d710s over to the TPM-aware pxeboot.
      
      For the record, the select order for setting the filename field in
      dhcpd.conf is:
      
       1. nodes.next_pxe_boot_path for node
       2. nodes.pxe_boot_path for node
       3. "pxe_boot_path" node_attribute for node
       4. "pxe_boot_path" node_type_attribute for node type
       5. don't set (i.e., use the dhcpd.conf global default).
      99a462a8
  5. 22 Feb, 2012 1 commit
  6. 22 Sep, 2011 1 commit
  7. 17 Aug, 2011 1 commit
  8. 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
  9. 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
  10. 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
  11. 29 Jun, 2010 1 commit
  12. 15 Jun, 2010 1 commit
  13. 11 Jun, 2010 2 commits
  14. 23 Apr, 2010 1 commit
  15. 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
  16. 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
  17. 30 Nov, 2009 1 commit
  18. 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
  19. 27 Nov, 2006 1 commit
  20. 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
  21. 16 May, 2006 2 commits
  22. 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
  23. 10 Apr, 2006 1 commit
  24. 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
  25. 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
  26. 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
  27. 04 May, 2005 1 commit
  28. 06 Dec, 2004 1 commit
  29. 09 Nov, 2004 1 commit
  30. 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
  31. 30 Sep, 2004 1 commit
  32. 26 Aug, 2003 1 commit
  33. 28 Apr, 2003 1 commit
  34. 27 Mar, 2003 1 commit
  35. 04 Jul, 2002 1 commit
  36. 16 Jan, 2002 1 commit
  37. 15 Jan, 2002 1 commit