1. 04 Jun, 2014 1 commit
  2. 13 May, 2014 1 commit
  3. 12 May, 2014 1 commit
    • Leigh B Stoller's avatar
      Fix for loading an image on a remoteded pg node. This is a kludge, the · 15dce279
      Leigh B Stoller authored
      notion of "dedicated" is currently a type specific attribute, but we
      also have "shared" nodes running on "dedicated" nodes, which messes
      everything up. I am not inclined to fix the underlying problem since
      Utah is the only site that uses this stuff, and these nodes are slowly
      dying out anyway.
      15dce279
  4. 16 Apr, 2014 1 commit
  5. 15 Apr, 2014 2 commits
  6. 03 Apr, 2014 1 commit
  7. 20 Mar, 2014 1 commit
  8. 17 Mar, 2014 2 commits
    • Kirk Webb's avatar
      Refactor taintstate code and move final taint updates to stated. · 662972cd
      Kirk Webb authored
      Can't do the untainting for all cases in libosload*.  The untainting
      is now hooked into stated, where we catch the nodes as they send
      along their "RELOADDONE" events to update their taint state according
      to the final state of their partitions.
      662972cd
    • Kirk Webb's avatar
      Add taint state tracking for OSes and Nodes. · 1de4e516
      Kirk Webb authored
      Emulab can now propagate OS taint traits on to nodes that load these OSes.
      The primary reason for doing this is for loading images which
      require special treatment of the node.  For example, an OS that has
      proprietary software, and which will be used as an appliance (blackbox)
      can be marked (tainted) as such.  Code that manages user accounts on such
      OSes, along with other side channel providers (console, node admin, image
      creation) can key off of these taint states to prevent or alter access.
      
      Taint states are defined as SQL sets in the 'os_info' and 'nodes' tables,
      kept in the 'taint_states' column in both.  Currently these sets are comprised
      of the following entries:
      
      * usermode: OS/node should only allow user level access (not root)
      * blackbox: OS/node should allow no direct interaction via shell, console, etc.
      * dangerous: OS image may contain malicious software.
      
      Taint states are inherited by a node from OSes it loads during the OS load
      process.  Similarly, they are cleared from nodes as these OSes are removed.
      Any taint state applied to a node will currently enforce disk zeroing.
      
      No other tools/subsystems consider the taint states currently, but that will
      change soon.
      
      Setting taint states for an OS has to be done via SQL presently.
      1de4e516
  9. 08 Jan, 2014 1 commit
  10. 31 Dec, 2013 1 commit
  11. 16 Dec, 2013 1 commit
  12. 19 Sep, 2013 2 commits
  13. 09 Sep, 2013 1 commit
  14. 09 Aug, 2013 1 commit
    • Leigh B Stoller's avatar
      I added two new actions to PerformOperationalAction, which appear to · cfd1974a
      Leigh B Stoller authored
      work fine when the nodes are behaving themselves.
      
      1) geni_update_users: Takes a slice credential and a keys argument. Can
        only be invoked when the sliver is in the started/geni_ready state.
        Moves the slice to the geni_updating_users state until all of the
        nodes have completed the update, at which time the sliver moves back
        to started/geni_ready.
      
      2) geni_updating_users_cancel: We can assume that some nodes will be whacky
        and will not perform the update when told to. This cancels the
        update and moves the sliver back to started/geni_ready.
      
      A couple of notes:
      
      * The current emulab node update time is about three minutes; the
        sliver is in this new state for that time and cannot be restarted or
        stopped. It can of course be deleted.
      
      * Should we allow restart while in the updating phase? We could, but
        then I need more bookkeeping.
      
      * Some nodes might not be running the watch dog, or might not even be
        an emulab image, so the operation will never end, not until
        canceled. I could add a timeout, but that will require a monitor or
        adding DB state to store the start time.
      cfd1974a
  15. 21 May, 2013 2 commits
  16. 14 May, 2013 1 commit
  17. 30 Apr, 2013 1 commit
    • Leigh B Stoller's avatar
      Add physical memory accounting for openvz/xen nodes. The total · 11752432
      Leigh B Stoller authored
      amount a physical has is stored in the node types table, and the
      per-vm memory requirement is stored in the nodes table. ptopgen
      adds up usage, and subtracts from the total for the ptop file.
      The vtop number comes from a virt_node_attribute table, and we
      pass this through to the client side. Note that this is less
      important for openvz, more so for XEN.
      
      In the NS file:
      
      	tb-set-node-memory-size $node 1024
      
      Number is in MBs. The mapper defaults this to 128 for openvz and 256
      for xen. Maximum is hardwired to 256 and 512 respectively. Need to
      think about a good way to configure this in.
      11752432
  18. 22 Apr, 2013 1 commit
  19. 10 Apr, 2013 1 commit
  20. 25 Mar, 2013 1 commit
  21. 25 Feb, 2013 1 commit
    • Mike Hibler's avatar
      Add SendApod() method to Node object, change apod command to use it. · 6d8c7463
      Mike Hibler authored
      This will enable stated to call it directly and avoid a level of fork/exec.
      Also, add "-h <hash>" command line option to ipod command to avoid perl
      needing to invoke a shell during system(). And clean up ipod/apod makefile,
      don't need to install apod setuid since ipod is already.
      6d8c7463
  22. 22 Feb, 2013 1 commit
  23. 08 Feb, 2013 1 commit
  24. 10 Jan, 2013 2 commits
  25. 09 Nov, 2012 1 commit
  26. 25 Sep, 2012 1 commit
    • Mike Hibler's avatar
      Logic for making osload failures non-fatal when nonfatal failure mode is set. · 783d3caf
      Mike Hibler authored
      Previously tb-set-node-failure-mode of "nonfatal" only applied to failures
      when rebooting a node. If there was an error during the disk reload phase,
      the experiment would still fail.
      
      This makes sense, as it is pretty dicey to let a node boot with an unloaded
      or partially-loaded disk. But there are situations, such as 500+ node
      experiments on PRObE, where it makes sense to not fail the experiment.
      
      What we do if a node fails reload, is to clear the OSIDs and partition info
      for the node and then force it to reboot (by setting the state to TBFAILED,
      for which there is a REBOOT trigger in stated). This causes the node to come
      up and park in pxeboot in the PXEWAIT state. It should remain in this state
      across reboots. The user can manually os_load the machine, or do a swap
      modify which will force the node to try to reload the original OS.
      
      Since this may not be for everyone, this new allow non-fatal osload failures
      requires that the "OsloadFailNonfatal" feature be enabled. This allows the
      new behavior to be global, per-group, per-experiment or per-user. The default
      is disabled.
      783d3caf
  27. 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
  28. 14 Sep, 2012 2 commits
    • Leigh B Stoller's avatar
      "improvements" to prereserve: · f7219346
      Leigh B Stoller authored
      New option -s datetime to specify a starting time for the pre-reserve.
      New option -e datetime to specify a ending time for the pre-reserve.
      
      The idea is that you can schedule a pre-reserve to begin sometime later,
      and you can optionally specify a time for a prereserve to terminate.
      There is a new script that runs from cron that checks for pre-reserves
      that need to be started or terminated.
      
      For example:
      
      boss> wap prereserve -s '2012-09-14 09:08:15' -e '2012-09-15' emulab-ops 50
      
      You can use any datetime string that is valid for str2time. At some point
      it would be nice to allow natural language dates ("tomorrow") but that
      requires a another bunch of perl packages and I didn't want to bother.
      
      NOTE: when using -e, -r is implied; in other words, when the
      pre-reserve is terminated, the table entry is cleared *and* the
      reserved_pid of all of the nodes is cleared. Any experiments using
      those nodes is left alone, although if the user does a swapmod, they
      could easily lose the nodes if another pre-reserve is set up that
      promises those nodes to another project.
      f7219346
    • Leigh B Stoller's avatar
      When creating vnodes, add a node_activity row. · 43e9f520
      Leigh B Stoller authored
      When deleting, remove node_activity and other slothd slots.
      Going to have slothd start reporting for individual VMs soon.
      43e9f520
  29. 04 Sep, 2012 1 commit
  30. 29 Aug, 2012 1 commit
  31. 17 Jul, 2012 2 commits
    • Leigh B Stoller's avatar
      Another ProtoGeni checkbox; record vlan tags in a history table · 8db4850e
      Leigh B Stoller authored
      and provide a web interface to look at them.
      8db4850e
    • 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
  32. 03 Jul, 2012 1 commit
  33. 02 Jul, 2012 1 commit