1. 15 Dec, 2016 1 commit
  2. 17 Oct, 2016 1 commit
  3. 14 Oct, 2016 1 commit
    • Leigh B Stoller's avatar
      Attempt to address the problem described in issue #166; that nodes fail · 5d7164b3
      Leigh B Stoller authored
      to go from PXEBOOTING (pxewakeup) to actually booting, but we do not
      know that for a really long time cause we send a BOOTING event from
      bootinfo right after PXEBOOTING, since that was the only place to hook
      it in. Well Mike discovered the "on commit" support in dhcpd, and so
      that is what we are going to use now. Note that uboot nodes have been
      using on commit, now all nodes will when BOOTINFO_EVENTS=0.
      
      Mike's reportboot program is now a daemon, renamed to report_daemon.
      The original reportboot program is a little script that writes the
      arguments from dhcpd to a unix socket to be picked up by the daemon,
      which does the original work of mapping the IP/Mac to a node id and
      sending an event. The code has also been modified to run on a subboss
      using the same node mapping given to to dhcpd, reconstituted as DBM
      file by subboss_dhcpd_makeconf.
      
      The reason for using a daemon this way is so that we do not hang up
      dhcpd in case we cannot get to the event system. The unix domain
      socket will give us some amount of buffering, but I suspect that any
      event problem will eat that space up quickly, and I will be back to
      revisit this (probably want reportboot to not block on its write
      to the socket).
      
      pxeboot changed to not send PXEBOOTING or BOOTING when
      BOOTINFO_EVENTS=0.
      5d7164b3
  4. 03 Oct, 2016 1 commit
  5. 07 Apr, 2016 1 commit
  6. 21 Mar, 2016 1 commit
  7. 19 Oct, 2015 1 commit
  8. 07 Jan, 2015 1 commit
  9. 05 Dec, 2014 1 commit
    • Mike Hibler's avatar
      Support dynamically created NFS-root filesystems for admin MFS. · f36bcfab
      Mike Hibler authored
      Significant hackary involved. Similar to exports_setup, there is a boss-side
      script and an ops-side script to handle creation and destruction of the ZFS
      clones that are used for the NFS filesystem. The rest was all about when to
      invoke said scripts.
      
      Creation is easy, we just do a clone whenever the TBAdminMfsSelect is called
      to "turn on" node admin mode. Destruction is not so simple. If we destroyed
      the clone on the corresponding TBAdminMfsSelect "off" call, then we could
      yank the filesystem out from under the node if it was still running in the
      MFS (e.g., "node_admin -n off node"). While that would probably be okay in
      most uses, where at worst we would have to apod or power cycle the node, we
      try to do better. TBAdminMfsSelect "off" instead just renames the clone
      (to "<nodeid>-DEAD") so that it stays available if the node is running on
      it at the time, but ensures that it will not get accidentally used by any
      future boot. We check for, and destroy, any previous versions for a node
      every time we invoke the nfsmfs_setup code for that node. We also destroy
      live or dead clones whenever we call nfree. This ensures that all MFSes
      get cleaned up at experiment swapout time.
      f36bcfab
  10. 23 Nov, 2014 1 commit
  11. 06 Jan, 2014 1 commit
    • Mike Hibler's avatar
      First reasonably functional lease_daemon. · 595a118c
      Mike Hibler authored
      Walks leases through their various states, enforces expiration and idle
      times and grace periods, and expires/locks leases.
      
      As always, probably sends too much email.
      595a118c
  12. 11 Dec, 2013 1 commit
  13. 04 Nov, 2013 2 commits
    • Kirk Webb's avatar
      7cb7effc
    • Kirk Webb's avatar
      Commit portfix version of snmpit and the Port module. · 264500e2
      Kirk Webb authored
      This commit pushes the changes located in the temporary snmpit_portfix
      subdirectory into the mainline snmpit_test directory, and updates
      db/Ports.pm with the 'portfix' changes.  These changes ensure better
      consistency with port lookup/resolution.  In particular, interswitch
      trunk lookup will return the switch-local side of the link.
      
      This commit also adds an installer script to cleanup the temporary files
      introduced for burning in the snmpit_portfix changes.
      264500e2
  14. 17 Sep, 2013 2 commits
  15. 14 May, 2013 1 commit
    • Leigh B Stoller's avatar
      Add new script to do arp lockdown on boss. · f5cc889a
      Leigh B Stoller authored
      The other version is only for the client side (subboss,ops), but does
      not work on real boss. Also hooked into tbswap so that the arps are
      updated during swapin/swapout. Also change tmcd to return arp
      directives for all containers, not just on shared nodes.
      f5cc889a
  16. 14 Nov, 2012 1 commit
    • Leigh B Stoller's avatar
      Move rpm/tar download from boss to ops, to avoid wasted network traffic. · f37cd9dc
      Leigh B Stoller authored
      To turn this option on, define SPEWFROMOPS=1 in your defs file. This
      will result in a redirect message from boss which will send the wget
      client over to ops. 
      
      A perl setuid root cgi script is run from the webserver on ops when a
      /spewrpmtar request is made. This script sends the key,nodeid,file
      over to boss via XMLRPC (as elabman). The return is simple yes or no,
      the caller is allowed (not allowed) to have that file. Since the
      ops script runs as root, it can spew the file back to the caller.
      
      Note that the elabinelab checks for the elabinelab source code are
      gone; we are now open source. Also, we spew that file from /share now,
      to be consistent.
      f37cd9dc
  17. 26 Sep, 2012 1 commit
  18. 24 Sep, 2012 1 commit
    • Eric Eide's avatar
      Replace license symbols with {{{ }}}-enclosed license blocks. · 6df609a9
      Eric Eide authored
      This commit is intended to makes the license status of Emulab and
      ProtoGENI source files more clear.  It replaces license symbols like
      "EMULAB-COPYRIGHT" and "GENIPUBLIC-COPYRIGHT" with {{{ }}}-delimited
      blocks that contain actual license statements.
      
      This change was driven by the fact that today, most people acquire and
      track Emulab and ProtoGENI sources via git.
      
      Before the Emulab source code was kept in git, the Flux Research Group
      at the University of Utah would roll distributions by making tar
      files.  As part of that process, the Flux Group would replace the
      license symbols in the source files with actual license statements.
      
      When the Flux Group moved to git, people outside of the group started
      to see the source files with the "unexpanded" symbols.  This meant
      that people acquired source files without actual license statements in
      them.  All the relevant files had Utah *copyright* statements in them,
      but without the expanded *license* statements, the licensing status of
      the source files was unclear.
      
      This commit is intended to clear up that confusion.
      
      Most Utah-copyrighted files in the Emulab source tree are distributed
      under the terms of the Affero GNU General Public License, version 3
      (AGPLv3).
      
      Most Utah-copyrighted files related to ProtoGENI are distributed under
      the terms of the GENI Public License, which is a BSD-like open-source
      license.
      
      Some Utah-copyrighted files in the Emulab source tree are distributed
      under the terms of the GNU Lesser General Public License, version 2.1
      (LGPL).
      6df609a9
  19. 04 Sep, 2012 1 commit
    • Leigh B Stoller's avatar
      Add image import utilities. · e468f885
      Leigh B Stoller authored
      image_setup is run from tbprerun to verify and create image
      descriptors, and then later from tbswap to actually download
      and verify the image (ndz) file.
      
      image_import does the actual work for a specific image (url).
      e468f885
  20. 29 Aug, 2012 1 commit
  21. 18 Jun, 2012 1 commit
  22. 04 Jun, 2012 3 commits
  23. 30 Apr, 2012 1 commit
  24. 07 Nov, 2011 1 commit
  25. 20 Sep, 2011 1 commit
  26. 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
  27. 28 Jul, 2011 1 commit
    • Leigh B Stoller's avatar
      Power "saving" additions from Barry Trent, who got them from Kevin · 03478fb9
      Leigh B Stoller authored
      Lahey.
      
      Power saving turns off nodes that have been sitting in PXEWAIT (and
      are thus free) for more then a set amount of time (see sitevar
      general/idlepower_idletime, which defaults to 3600 seconds).
      
      The driver script is tbsetup/idlepower.in and needs to be added to
      /etc/crontab at sites that want to do this. Even so, operation is
      enabled by the sitevar general/idlepower_enable. Each time it runs, it
      checks for nodes that need to be turned off, and then calls power.
      Note: This should be a daemon not a cron job.
      
      To be considered for power saving, you must add an attribute to the
      node_type_attributes table called 'idlepower_enable', set to 1.
      
      Locally, I hacked up stated and power to make the state transitions
      legal so that stated does not whine. I added POWEROFF as a valid
      transition from any state, to opmodes NORMAL, NORMALv1, and NORMALv2.
      Barry's original patch already had a state transition for PXEKERNEL.
      In power, I added code to look at the actual operation, and in the
      case of "on", do not send an event if the node is not in POWEROFF,
      since a user can foolishly say power on anytime, and the node is on
      nothing is every going to change, and the state transition would be
      wrong.
      
      node_reboot takes of powering nodes on, when they are in POWEROFF.
      
      Barry on copyright issues:
       "I'm not sure those rights are mine to grant! Remember that this code
       came originally from Kevin Lahey (kml@patheticgeek.net) and
       originated at DETER (although he's apparently not there anymore). I
       don't foresee a problem from our point of view (but I'll double
       check, of course). Shall I try to contact Kevin try to sort this mess
       out, or do you think it's better to coordinate from your end?"
      03478fb9
  28. 19 Jul, 2011 1 commit
  29. 29 May, 2011 1 commit
  30. 10 May, 2011 1 commit
  31. 05 May, 2011 1 commit
  32. 28 Apr, 2011 1 commit
  33. 05 Apr, 2011 1 commit
  34. 16 Mar, 2011 1 commit
  35. 14 Mar, 2011 1 commit
    • Ryan Jackson's avatar
      Power control for Linux NetworX ICE Boxes · 9513a57e
      Ryan Jackson authored
      Added support for power control and status on Linux NetworkX ICE Boxes.
      Note that the 'reset' command is tied to the node's hardware reset line
      through the special ICE Box connector on the back of the node rather.
      than a simple power cycle, so this needs to be connected.
      9513a57e
  36. 08 Mar, 2011 1 commit
    • Leigh B Stoller's avatar
      Modified version of snmpit to be run as a "feature" while · 31812eae
      Leigh B Stoller authored
      testing. Changes include:
      
      * syncvlans option that compares the switches and the DB and makes
        everything consistent, including creating backing DB objects for the
        dozens of hand created vlans, since all vlans must have a DB object
        so that vlan tag reservations can be consistent across all stacks.
      
      * Clean up the tag stuff a bit. No longer store tag in the
        lan_attributes table since that is a transient table, prone to
        getting out of sync with reality.
      
      * Changes to how the set of devices in a stack is chosen; ensure that
        we do not reference switches that are not needed (no ports on that
        switch and does not traverse a trunk on that switch). This should
        allow us to move the Backbone switches back into the Experimental
        stack, without fear that normal swapin will block cause the long
        distance links to those switches is down.
      31812eae