1. 17 Jan, 2018 1 commit
  2. 16 Jan, 2018 1 commit
    • Leigh Stoller's avatar
      Lots of changes for SSL enabled pubsub: · e44fc90d
      Leigh Stoller authored
      Pubsub libraries are now SSL enabled by default, so that we can talk SSL
      from a perl client. To do this we need another entry point from SWIG
      into the event code, event_register_withssl. At the same time there is a
      new entry point called event_set_sockbufsizes that calls a new pubsub
      entry point pubsub_set_sockbufsizes.
      
      The problem is that current swig generates code that does not compile,
      and since I don't know nothing about swig, I just hand crafted the two
      new routines that needed in event_wrap.c and the few extra lines that go
      into event.pm.
      
      Also change all the link lines to include the ssl/crypto libraries when
      linking.
      e44fc90d
  3. 30 Oct, 2017 1 commit
  4. 06 Apr, 2017 1 commit
    • Mike Hibler's avatar
      Incomplete (and commented out) attempt to short-circuit scheduler events. · 0916b5ab
      Mike Hibler authored
      The event scheduler loves to send events to itself and will break badly
      if we ever change pubsubd (back) to not forward notifications to the
      sender. This was the start of an attempt to short circuit the path by
      which such events are delivered, both sending an event (for any other
      interested nodes) and invoking the event callback directly (for us).
      Likely not a good idea...
      0916b5ab
  5. 31 Mar, 2017 1 commit
  6. 30 Mar, 2017 1 commit
  7. 15 Mar, 2017 1 commit
  8. 13 Mar, 2017 1 commit
  9. 09 Mar, 2017 2 commits
  10. 09 Feb, 2017 1 commit
  11. 31 Jan, 2017 1 commit
    • Mike Hibler's avatar
      More tweaks to frisbee heartbeat code. · df78b7ef
      Mike Hibler authored
      Make sure server doesn't exit as long as it is getting heartbeats
      from known clients. We used to exit when we stopped getting requests,
      however clients often finish their network activity long before they
      are actually done.
      
      Emulab event now reports Mebibytes rather than bytes. It is accurate
      enough and avoids perl bigints in the receiver(s).
      df78b7ef
  12. 19 Jan, 2017 1 commit
  13. 14 Nov, 2016 1 commit
    • Mike Hibler's avatar
      Ignore state transitions from NORMALv2/ISUP -> BOOTING. · 990fcc0b
      Mike Hibler authored
      In the !BOOTINFO_EVENTS world, someone making a random DHCP request would
      cause a state transition to BOOTING which would start a timeout ticking and
      most likely would timeout in a couple of minutes and reboot the node.
      990fcc0b
  14. 20 Oct, 2016 1 commit
  15. 18 Oct, 2016 2 commits
    • Mike Hibler's avatar
    • Mike Hibler's avatar
      Actually reboot nodes that hit the REBOOT trigger. · 6a090aef
      Mike Hibler authored
      This partially undoes the "temporary" change that Mac put in 13 years ago.
      The lack of an actual reboot does cause us grief. In particular, the case
      of NORMALv2/BOOTING when a PXEWAKEUP at swap in is unsuccessful. We have
      seen this when IPMI SOL issues have caused the console and OS to hang up in
      the post-wakeup boot process or if the PXEWAKEUP is lost. Since there is
      only the overarching swapin timeout at this point, and that is typically
      quite large, we'll risk a bad timeout interaction (which was the reason for
      the "temporary" change.
      6a090aef
  16. 06 Oct, 2016 2 commits
  17. 22 Sep, 2016 1 commit
  18. 29 Aug, 2016 1 commit
  19. 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
  20. 27 Jan, 2016 1 commit
  21. 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
  22. 26 Jan, 2015 1 commit
  23. 01 Dec, 2014 1 commit
  24. 25 Nov, 2014 1 commit
  25. 19 Nov, 2014 1 commit
  26. 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
  27. 05 Sep, 2014 1 commit
  28. 20 Aug, 2014 1 commit
  29. 19 Aug, 2014 1 commit
  30. 01 Jul, 2014 1 commit
  31. 28 May, 2014 1 commit
  32. 27 May, 2014 1 commit
  33. 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
  34. 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
  35. 17 Mar, 2014 1 commit
  36. 21 Oct, 2013 1 commit