1. 24 Apr, 2017 1 commit
    • David Johnson's avatar
      Clientside Docker vnode support. · 96794781
      David Johnson authored
      See clientside/tmcc/linux/docker/README.md for design notes.
      See clientside/tmcc/linux/docker/dockerfiles/README.md for a description
      of how we automatically Emulabize existing Docker images.
      
      Also, this mostly fits within the existing vnodesetup path, but I did modify
      mkvnode.pl to allow the libvnode backend to provide a vnodePoll wait
      loop instead of the builtin vnodeState loop.
      96794781
  2. 11 Apr, 2017 1 commit
  3. 06 Apr, 2017 1 commit
  4. 11 Oct, 2016 1 commit
    • David Johnson's avatar
      Let experimenters customize prepare, and interface and hosts file setup. · dd4c67d0
      David Johnson authored
      The prepare script now supports pre and post hooks.  It runs all hooks
      in rc order, from the DYNRUNDIR/prepare.pre.d and BINDIR/prepare.pre.d
      dirs (rc order in this case is the BSD order, or my version of it ---
      any file prefixed with a number is run in numeric order; other files are
      run sorted alphabetically following numeric files).  Post hooks are in
      prepare.post.d, and are run at the end of prepare.
      
      (DYNRUNDIR is always /var/run/emulab .  STATICRUNDIR is usually
      /etc/emulab/run but could be /etc/testbed/run, depending on the
      clientside installation.)
      
      We now allow users to override our default interface configuration --
      and if they do, and tell us about it by writing a file in either
      $DYNRUNDIR or $STATICRUNDIR named interface-done-$mac , we will not
      attempt to configure it, and will assume they have done it!  If they are
      nice to us and write
        $iface $ipaddr $mac
      into the file, we will parse that and put it into the @ifacemap and
      %mac2iface structures in doboot().  We do *not* attempt to provide them
      the ifconfig info in env vars or anything; they have to grok our
      ifconfig file format, in all its potential glory.
      
      We read the hosts.head file(s) from /etc, DYNRUNDIR, and STATICRUNDIR,
      and prepend them to our Emulab hosts content.  Then, we append the
      content of the hosts.tail file(s) from /etc, DYNRUNDIR, and STATICDIR
      --- and that file becomes the new /etc/hosts file.
      
      getmanifest() has become getrcmanifest() to avoid confusion with the
      GENI manifest.  Also, it now supports local manifests embedded in the
      filesystem from $DYNRUNDIR and $STATICRUNDIR (priority is manifest from
      exp, then DYNRUNDIR, then STATICRUNDIR).  All manifests read and
      applied.  Local manifests may also reference local files instead of blob
      ids, of course.  It is important to support local manifests so that
      experimenters can hook our services by default in the disk image.
      dd4c67d0
  5. 12 Sep, 2016 1 commit
    • Leigh B Stoller's avatar
      Remove use of evproxy and clusterd; clustering is now built into pubsubd · 49b480c6
      Leigh B Stoller authored
      via the -c and -E/-F options:
      
      * On normal nodes, we used to use evproxy to capture experiment events
        on ops and forward them to the node local pubsubd (where all local
        agents connect to). Now we restart pubsubd with the -c and a -F option
        that says to subscribe to all events '(EXPT == "pid/eid")' at the
        parent pubsubd on ops (-c event-server).
      
      * On shared hosts, we used to start kill pubsubd and start clusterd. Now
        we restart pubsubd with just "-c event-server" which causes it to
        subscribe to all events at the parent pubsubd on ops. This is how
        clusterd did it as well.
      
      Another change is that instead of just kill pubsubd and starting with
      new options, we now write a pubsubd.conf file into /usr/local/etc. The
      rc.d startup files look for this file and source it as a typical .conf
      file and pass the options to pubsubd.
      
      I added deletion of these file to the prepare script.
      49b480c6
  6. 30 Sep, 2014 1 commit
    • Mike Hibler's avatar
      Automate the freenas setup a bit more. · d7909c5d
      Mike Hibler authored
      Use the "freenas-tarball" makefile target to create a tarball for
      installation on FreeNAS 8.3 or 9.2. The tarball must be made on the
      corresponding FreeBSD system (since FreeNAS has no installed compiler).
      
      To install the tarball on FreeNAS you will need to login as root and:
      
          cd /
          mount -o rw -u /
          mount /cfg
          tar xzf freenas-tarball.tar.gz
          unmount /cfg
          mount -o ro -u /
      d7909c5d
  7. 28 Aug, 2013 1 commit
  8. 22 Jul, 2013 1 commit
  9. 28 Jun, 2013 1 commit
  10. 20 Jun, 2013 1 commit
  11. 17 May, 2013 1 commit
  12. 02 Apr, 2013 1 commit
  13. 01 Mar, 2013 1 commit
  14. 12 Feb, 2013 1 commit
  15. 29 Jan, 2013 1 commit
  16. 06 Dec, 2012 1 commit
    • Leigh B Stoller's avatar
      Start slothd inside openvz containers. · 4f885af1
      Leigh B Stoller authored
      Change the logging code so that we get better output on early failure.
      Openvz nodes do not have a "console" so early errors are lost. This is
      a real pain, cause before this point, we have no idea what went wrong.
      Later versions of openvz are supposed to have a console.
      4f885af1
  17. 28 Sep, 2012 1 commit
  18. 25 Sep, 2012 1 commit
  19. 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* state...
      6df609a9
  20. 04 Jan, 2012 2 commits
  21. 21 Jul, 2011 1 commit
  22. 03 Apr, 2011 1 commit
  23. 21 Oct, 2010 1 commit
  24. 19 Apr, 2010 1 commit
  25. 11 Jun, 2009 1 commit
  26. 28 May, 2009 1 commit
  27. 10 Sep, 2008 1 commit
  28. 06 Feb, 2008 1 commit
  29. 30 Jan, 2008 1 commit
  30. 25 Jan, 2008 1 commit
  31. 21 Aug, 2007 1 commit
    • Leigh B. Stoller's avatar
      Another round of widearea node hacking for CMU. These changes add · 99346dc0
      Leigh B. Stoller authored
      widearea reloading support.
      
      * New slot in the images table to store an access key which remote
        sites must provide in order to download an image (via https).
      
      * tmcd returns a different kind of ADDRESS field from doloadinfo.
        Instead of the multicast stuff, return a URL that points to boss'
        web server. The URL is of the form:
      
         https://www.myemulab.net/spewimage.php?imageid=10013&access_key=abcdef
      
        which as you can see is fully specified; the client does not need
        to know anything else.
      
      * New webpage and backend scripts appropriately called "spewimage"
        which also includes support for the http HEAD request (from wget) to
        avoid downloading images that are already on the node. I just
        learned about this HEAD request stuff today ... but otherwise these
        operate as expected, spewing the image if the access key is provided.
      
      * Changes to rc.frisbee to deal with remote loading. In addition to
        URL support, I also added support for simple paths, the intent being
        that we will probably distribute images offline (say, at night) so
        that when a node reboots it doesn't actually have to wait 60 minutes
        for an image to download. I have not added any server side support
        for this yet though. Maybe later this week.
      
      * Other bits and pieces and fixes to make this work.
      99346dc0
  32. 17 Aug, 2007 1 commit
  33. 25 May, 2006 1 commit
  34. 14 Nov, 2005 1 commit
  35. 10 Nov, 2005 1 commit
  36. 17 Aug, 2005 2 commits
    • Russ Fish's avatar
      Start slothd at boot time on Windows. · 95fe00b4
      Russ Fish authored
      95fe00b4
    • Mike Hibler's avatar
      Reduce number of boottime TMCD calls: · 273f0f2c
      Mike Hibler authored
       * ipodinfo and watchdoginfo are now fullconfig commands
       * ipod setup moved later in startup to take advantage of fullconfig
       * watchdog changed to use cached info on the first call
       * move firewall setup later to take advantage of fullconfig
      Other stuff:
       * accounts/ipodinfo cache files protected 600
      
      Along with Tim's changes, this should eliminate 4 more boot time calls!
      273f0f2c
  37. 07 Jun, 2005 1 commit
  38. 19 May, 2005 1 commit