1. 03 Feb, 2016 1 commit
    • Leigh Stoller's avatar
      Add support for multiple pre-reservations per project: · 103e0385
      Leigh Stoller authored
      When creating a pre-reserve, new -n option to specify a name for the
      reservation, defaults to "default". All other operations require an
      -n option to avoid messing with the wrong reservation. You are not allowed
      to reuse a reservation name in a project, of course. Priorities are
      probably more important now, we might want to change the default from 0 to
      some thing higher, and change all the current priorities.
      
      For bookkeeping, the nodes table now has a reservation_name slot that is
      set with the reserved_pid. This allows us to revoke the nodes associated
      with a specific reservation. Bonus feature is that when setting the
      reserved_pid via the web interface, we leave the reservation_name null, so
      those won't ever be revoked by the prereserve command line tool.
      
      New feature; when revoking a pre-reserve, we now look to see if nodes being
      revoked are free and can be assigned to other pre-reserves. We used to not
      do anything, and so had to wait until that node was allocated and released
      later, to see if it could move into a pre-reserve.
      
      Also a change required by node specific reservations; when we free a node,
      need to make sure we actually use that node, so have to cycle through all
      reservations in priority order until it can used. We did not need to do
      this before.
      103e0385
  2. 27 Jan, 2016 1 commit
  3. 05 Jun, 2015 1 commit
    • Gary Wong's avatar
      Use new interpretation of "bps" in the monitoring schema. · 9c45a875
      Gary Wong authored
      It used to mean bytes per second.  Now it means bits per second.  To
      avoid worrying about client-side versions and updating, we'll keep the
      client unmodified and convert statistics on their way through the server.
      Who doesn't like ugly hacks?
      9c45a875
  4. 26 Jan, 2015 1 commit
  5. 01 Dec, 2014 1 commit
  6. 25 Nov, 2014 1 commit
  7. 19 Nov, 2014 1 commit
  8. 11 Nov, 2014 1 commit
    • Kirk Webb's avatar
      More TaintState management updates. · d24df9d2
      Kirk Webb authored
      * Do not "reset" taint states to match partitions after OS load.
      
      Encumber node with any additional taint states found across the
      OSes loaded on a node's partitions (union of states).  Change the
      name of the associated Node object method to better represent the
      functionality.
      
      * Clear all taint states when a node exits "reloading"
      
      When the reload_daemon is finished with a node and ready to release it,
      it will now clear any/all taint states set on the node.  This is the
      only automatic way to have a node's taint states cleared.  Users
      cannot clear node taint states by os_load'ing away all tainted
      partitions after this commit; nodes must travel through reloading
      to get cleared.
      d24df9d2
  9. 05 Sep, 2014 1 commit
  10. 20 Aug, 2014 1 commit
  11. 19 Aug, 2014 1 commit
  12. 01 Jul, 2014 1 commit
  13. 28 May, 2014 1 commit
  14. 27 May, 2014 1 commit
  15. 22 May, 2014 1 commit
    • Gary Wong's avatar
      Add GPO ops-monitoring support. · e9a21edc
      Gary Wong authored
      The pieces are:
      
       * A monitoring daemon (clientside/protogeni/shared-node-monitor), which
         runs in each Xen shared node dom0, and gathers node and interface
         statistics.  It communicates these over the event system with...
      
       * A listening daemon (event/monitoring/shared-node-listener), running
         on the local boss node, and inserts everything it hears into the
         MySQL database "monitoring".  This database is also used by...
      
       * A site-wide monitoring daemon (protogeni/scripts/mondbd), periodically
         polling the normal testbed database (nodes and interfaces tables) and
         copying snapshots of the important pieces into the monitoring database.
      
       * The monitoring database is also read by a WWW front end invoked as a
         WSGI process by Apache.  This front end is developed by the GPO and
         modified to work with ProtoGENI, and is maintained in an independent
         repository.
      e9a21edc
  16. 03 Apr, 2014 2 commits
    • Mike Hibler's avatar
      Fix things that clang found. · b72f732d
      Mike Hibler authored
      Including one piece of incorrect code that might have prevented us
      from getting a meaningful error message on a failed RPC.
      b72f732d
    • Mike Hibler's avatar
      Support for FreeBSD 10.x boss/ops. · e81136ad
      Mike Hibler authored
      The biggest changes were related to 10.0's replacing gcc with clang
      and the switch to a new package system. The former required various
      fixes to Makefiles that hardwired "gcc" and also missing prototypes
      in source files that clang is particularly obnoxious about.
      
      There was also accomodating the normal evolution of the ports tree.
      New variables were needed in many of the Makefiles for this. Hopefully,
      all the changes I made are backward compatible, but I don't actually
      care that much since I hope to never, ever have to remake those older
      packages! A new emulab version of the m2crypto port was needed to
      reflect that m2crypto is no longer installed as an .egg file.
      
      Casualties:
      
        * Emulab assign. As of this commit, assign does not build with
          clang. It will build, but immediately core dumps if built with
          a gcc port (gcc46 below). THIS NEEDS TO BE FIXED!
      
        * Emulab nsverify. This requires building a pure ns-2.34, which
          is old and does not compile with clang. You will need to set
          NSVERIFY=0 in your defs file. I did this in defs-elabinelab
          (iff FBSD==10) but no where else right now.
      
        * Bind in the base distro. Bind is no longer part of FreeBSD
          (it has been replaced with something called "unbound"). So we
          install bind99 from a port and we make the /etc/namedb symlink
          to /usr/local/etc/namedb which is where it now lives.
      
        * Perl 5.12. It has been totally removed from the ports tree.
          We now install 5.14, the next-most obsolete version of Perl!
      
        * pkg_{add,delete,info}. As mentioned, the packages tools have
          changed. For the most part "pkg <cmd>" is the same as "pkg_<cmd>"
          but not always. This required considerable violence in the
          install/phases code. But it is actually cleaner now.
      
        * GCC in the base distro. I added installation of the gcc46 port
          to the boss and ops meta packages, just for old-times sake
          (we might wind up needing it, if still more stuff doesn't work
          with clang).
      e81136ad
  17. 17 Mar, 2014 1 commit
  18. 21 Oct, 2013 1 commit
  19. 26 Feb, 2013 1 commit
  20. 22 Feb, 2013 1 commit
    • Mike Hibler's avatar
      More minor speed ups for stated. · 461a1fce
      Mike Hibler authored
      Log would be mail messages in stated-mail.log rather than actually emailing them.
      Fewer regular log messages.
      Avoid scanning a list unnecessarily if not in debug mode.
      Use mysql to pick out certain osfeatures.
      Bug fix: typo would let stated block when sent a SIGUSR1.
      461a1fce
  21. 18 Nov, 2012 1 commit
  22. 27 Sep, 2012 1 commit
  23. 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
  24. 23 Sep, 2012 1 commit
  25. 01 Aug, 2012 1 commit
    • Mike Hibler's avatar
      Support 64-bit FreeBSD on the server side. · 9036d314
      Mike Hibler authored
      NOTE: currently only for FreeBSD 7.3 installs because that is the only
      set of boss/ops/fs packages I have built so far!
      
      This mostly involved minor changes to event agents. Too often we were
      passing a pointer to a "long" to *get_int32, which on a 64-bit x86 OS would
      fill the wrong half of a 64-bit variable. There was also one instance of
      TCL code that had to be tweaked to account for 32- vs 64-bit.
      
      These changes also required regeneration of SWIG stubs and an ugly change
      to the SWIG generated code to use va_copy rather than direct assignment in
      a couple of places.
      
      Also related to SWIG is ensuring that the components that go into the
      perl/python stub .so files are built with PIC. The amd64 linker requires
      this.
      
      The meta-ports had to be changed to reflect that linuxthreads and
      ulsshxmlrpcpp don't work on amd64. The former had little effect as we
      had mostly eliminated uses of linuxthreads already. The one thing that
      did change was that we do not build nfstrace on amd64 (and we don't
      currently use this anyway). Removing ulsshxmlrpcpp required switching
      to the new event scheduler (event/new_sched) that Ryan did awhile back.
      Note that it is only "new" in the sense that it uses a standard XMLRPC
      package, there should be no functional differences. However, to be safe
      we only use new_sched as the standard scheduler on 64-bit server installs.
      
      Finally, added support to elabinelab setup to do a 64-bit server install.
      Just specify FBSD73-64-STD as the boss/ops/fs osid and rc.mkelab should
      do the rest.
      
      That is pretty much it other than some random nits here and there.
      9036d314
  26. 04 Apr, 2012 1 commit
  27. 02 Apr, 2012 1 commit
  28. 14 Mar, 2012 1 commit
    • Mike Hibler's avatar
      Make the secure boot path work with PXEWAIT. · ceeede28
      Mike Hibler authored
      When a node with the secure boot dongle is freed, it goes into PXEWAIT in
      the context of the secure MFS. Previously we remained in "secure mode"
      (i.e., did not terminate with a TPMSIGNOFF) while a node was in this state.
      If the next use of the node, just booted from the OS that was already on
      the disk, then we never signed off properly.
      
      Now we sign off before entering PXEWAIT. I thought that this would be the
      easiest alternative to fixing the problem..HaHaHa..not! Because now we have
      to restart the secure boot path (i.e., reboot) if the result of coming out
      of PXEWAIT is a request to reload the disk (i.e., if we are continuing the
      secure disk load path).
      
      Ideally this would have required only modifications to the state machines
      for SECUREBOOT/LOAD, but as you can see by the presence of stated.in in the
      modified files, this was not the case. The change required some additional
      "finesse" to get it working. See the comments in stated.in and bootinfo_mysql.c
      if you really care.
      ceeede28
  29. 30 Jan, 2012 1 commit
  30. 23 Jan, 2012 4 commits
  31. 19 Jan, 2012 1 commit
  32. 10 Nov, 2011 1 commit
  33. 30 Aug, 2011 1 commit
  34. 23 Aug, 2011 1 commit
  35. 17 Aug, 2011 1 commit
  36. 16 Aug, 2011 1 commit