1. 01 Dec, 2015 1 commit
    • Leigh B Stoller's avatar
      Add an "interruptible" option to TBScriptLock(). When set, each time · 08ce72b6
      Leigh B Stoller authored
      through the loop we look to see if signals are pending, and if so we return
      early with an error. The caller (libvnode_xen) can use this to avoid really
      long waits, when the server has said to stop what its doing. For example, a
      vnode setup is waiting for an image lock, but the server comes along ands
      to stop setting up. Previously, we would wait for the lock, now we return
      early. This is to help with cancelation where it is nice if the server can
      stop a CreateSliver() in its tracks, when it is safe to do so.
      08ce72b6
  2. 27 Oct, 2015 1 commit
    • Leigh B Stoller's avatar
      Some fixes to ensure that vnodepreconfig can do all the same stuff at · 70c210e4
      Leigh B Stoller authored
      reboot that it does when the filesystems are first created, so as redo what
      might have been lost, say by prepare before snapshot. This required saving
      some private data in the non private section of the data blob we store to
      disk for each VM so that we have enough info to mount and fix the root FS
      of the node being rebooted.
      70c210e4
  3. 05 Mar, 2015 1 commit
  4. 25 Jul, 2014 1 commit
  5. 11 Jul, 2014 1 commit
  6. 22 Apr, 2014 1 commit
  7. 26 Mar, 2014 1 commit
  8. 07 Mar, 2014 1 commit
  9. 27 Feb, 2014 1 commit
  10. 26 Feb, 2014 1 commit
  11. 24 Jan, 2014 1 commit
  12. 16 Dec, 2013 1 commit
    • Leigh B Stoller's avatar
      Couple of fixes for XEN. · 8311c7f3
      Leigh B Stoller authored
      1. The backend process that starts the XEN vm (xl/xm) was not happy
         with the signal mask settings. By pass that for the vnodeboot call
         so that xl/xm sees a clean mask. The sympton was processes getting
         left behind.
      
      2. Watch for a XEN container being rebooted from inside, by waiting a
         little bit to see if comes back on its own. We used to fold right
         away, but now keep running.
      8311c7f3
  13. 19 Sep, 2013 1 commit
  14. 23 Jul, 2013 1 commit
  15. 30 Apr, 2013 1 commit
  16. 27 Feb, 2013 2 commits
  17. 30 Jan, 2013 1 commit
    • Kirk Webb's avatar
      Refactor generic vnode setup code a bit for OS independence · f7c51ea6
      Kirk Webb authored
      In order to hook in via the "generic vnode" path for setting up
      blockstores under FreeNAS, I've done a bit of shuffling in order to
      make things more OS-independent and reusable.
      
      * mkvnode.pl
      
      Moved to clientside/tmcc/common.  OS-dependent bits (really only some
      IPtables stuff) abstracted, and moved to tmcc/linux/libvnode.pm.
      
      * libvnode.pm
      
      Moved generic vnode stuff to a new module.  Moved miscellaneous
      utility functions to a new module.  Left OS-specific stuff.  Not
      really sure if what is left should be merged into libsetup/liblocsetup
      or left here - deferring this decision for now.
      
      * libgenvnode.pm
      
      New module currently containing generic vnode stuff.  Currently, the
      VNODE_* predicates are here.
      
      * libutil.pm
      
      New module containing miscellaneous utility functions (fatal,
      mysystem, mysystem2, setState, etc.)
      
      Files referencing libvnode.pm have been updated, as have the relevant
      Makefiles.
      f7c51ea6
  18. 03 Oct, 2012 1 commit
  19. 28 Sep, 2012 2 commits
  20. 25 Sep, 2012 1 commit
    • Leigh B Stoller's avatar
      Changes to support XEN shared nodes and guest snapshots. · 2489c09b
      Leigh B Stoller authored
      Snapshots are done a little differently then openvz of course, since
      there are potentially multiple disk partitions and a kernel. The basic
      operation is:
      
      1. Fire off reboot_prepare from boss. Changes to reboot_prepare result
         in the guest "halting" insted of rebooting.
      
      2. Fire off the create-image client script, which will take imagezips
         of all of the disks (except the swap partition), and grab a copy of
         the kernel. A new xm.conf file is written, and then the directory
         is first tar'ed and then we imagezip that bundle for upload.
      
      3. When booting a guest, we now look for guest images that are
         packaged in this way, although we still support the older method
         for backwards compatability. All of the disks are restored, and a
         new xm.conf created that points to the new kernel.
      2489c09b
  21. 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
  22. 29 Aug, 2012 1 commit
  23. 16 Aug, 2012 1 commit
  24. 17 Jul, 2012 1 commit
    • Leigh B Stoller's avatar
      Add tracking of control net mac addresses in the node_history. · bb66f52e
      Leigh B Stoller authored
      For InstaGeni, need to record and be able to search for history by
      control net mac address. We now record this in the node_history table,
      with corresponding change to the ShowNodeHistory web page.
      
      The backend changes required are that we 1) actually generate a mac
      address for VMs and stick it into the interfaces record, 2) return
      that mac from tmcd in the jailconfig, and 3) have the openvz library
      create the control net interface using that mac.
      
      On the openvz image, needed to switch to using a control network
      bridge for all interfaces (not just routable ones) so that traffic
      leaves the node with the correct mac.
      bb66f52e
  25. 05 Jul, 2012 2 commits
  26. 02 Jul, 2012 1 commit
  27. 06 Jun, 2012 1 commit
  28. 23 May, 2012 1 commit
  29. 17 Jan, 2012 1 commit
  30. 10 Jan, 2012 1 commit
  31. 09 Jan, 2012 1 commit
  32. 04 Jan, 2012 1 commit
    • Leigh B Stoller's avatar
      A big set of robustness changes to how vnodes are created and · 6991d85f
      Leigh B Stoller authored
      managed.
      
      * Try much harder to prevent broken VMs from getting left behind.
      
      * Try even harder to prevent left of state (devices, volumes, etc)
        from getting left behind once a VM breaks.
      
      * Store all the assorted bits of state we create in a file so that it
        it can be cleaned up later.
      
      * Watch for "stale" VMs that got left behind, using the UUID, which is
        regenerated each time an experiment is swapped in. Since we now
        store all the state that was associated with the stale VM, we can
        actually tear it down later. To do this by hand:
      
         node> sudo /usr/local/etc/emulab/mkvnode.pl -c pcvmXXX-YYY
      
      * Lots of changes to signal handling to avoid a common problem case;
        trying to reboot or halt a VM that is still setting up.
      6991d85f
  33. 19 Nov, 2011 1 commit
  34. 21 Jul, 2011 1 commit
  35. 25 Oct, 2010 1 commit
  36. 19 Oct, 2010 1 commit
  37. 23 Jun, 2010 1 commit