1. 10 Jan, 2013 2 commits
  2. 09 Nov, 2012 1 commit
  3. 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
  4. 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
  5. 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
  6. 04 Sep, 2012 1 commit
  7. 29 Aug, 2012 1 commit
  8. 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
  9. 03 Jul, 2012 1 commit
  10. 02 Jul, 2012 4 commits
  11. 21 Jun, 2012 1 commit
  12. 12 Jun, 2012 1 commit
  13. 07 Jun, 2012 1 commit
    • Leigh B Stoller's avatar
      New script, clone_image to simplify create/snapshot from a node. · b01c991d
      Leigh B Stoller authored
      clone_image is a wrapper around newimageid_ez and create_image, that
      simplifies the most common operation; creating a new imageid derived
      from the image/os that is currently running in the node, and then
      taking a snapshot of the node. So for example, if node pcXXX is
      running image FREEBSD, and you want to create a custom image from that
      node, all you need to do:
      
      	boss> clone_image myfreebsd pcXXX
      
      which will create the new descriptor, deriving everything from the
      FREEBSD image on the node, and then take a snapshot from pcXXX. If
      the descriptor already exists, just take the snapshot.
      
      So what if you do:
      
      	boss> clone_image FREEBSD pcXXX
      
      well, the image is always looked up in the project the node is
      currently attached to, so in fact a new descriptor is created in that
      project, and you do not actually overwrite an image from some other
      project. 
      
      I've added some locking to images to prevent concurrent snapshots.
      This seemed like a good idea since this script is going to be used
      from the ProtoGeni interface. More on this in another commit.
      b01c991d
  14. 18 May, 2012 1 commit
  15. 16 May, 2012 1 commit
    • Leigh B Stoller's avatar
      Another protogeni checkbox; scriptify and simplify adding "special" · cf517af6
      Leigh B Stoller authored
      devices with network interfaces. Emulab's spp and bbg nodes are
      examples, but I did all that by hand inserting sql. An spp node is a
      shared node with some interfaces. Users can allocate one or more of
      those interfaces and establish vlans to the interfaces. The node is a
      "fakenode" in "shared" mode, and everything else falls out. The mapper
      assigns virtual nodes until all of the interfaces are allocated,
      snmpit does its work on the interfaces, and the user then does the
      rest.
      
      Anyway, to added a special device:
      
        boss> wap addspecialdevice -s -t goober goober1
      
      The -t argument is the name of the node type, created if it does not
      exists. The last argument is the name of the fakenode to create in the
      DB. The -s option says the special device is shared. Without -s, the
      device is allocated exclusively.
      
      Then to add interfaces to the device:
      
        boss> wap addspecialiface -b 1Gb -s cisco4,100,100 goober1 eth0
      
      The -b option is the speed (either 100Mb or 1Gb). The -s option is the
      switch side of the interface (switchname,card,port). The last two
      arguments are the nodename and iface name for the interfaces table.
      
      After the interface and wires table entry are added to the DB, snmpit
      is called to put the switch port into tagged mode (if the node is
      shared). To skip the snmpit step, add the -t option.
      cf517af6
  16. 07 May, 2012 2 commits
  17. 21 Apr, 2012 1 commit
  18. 09 Apr, 2012 1 commit
  19. 27 Mar, 2012 2 commits
  20. 09 Mar, 2012 1 commit
    • Mike Hibler's avatar
      Add a node-default pxe_boot_path to go along with node-type-default. · 99a462a8
      Mike Hibler authored
      As if things weren't hairy enough for the pxe_boot_path, we need a per-node
      default value. This should not be confused with the next_pxe_boot_path or
      pxe_boot_path fields in the nodes table, which is a per-node value but only
      for the lifetime of the current experiment.
      
      We need this new field specifically so that we can switch some, but not all,
      of the d710s over to the TPM-aware pxeboot.
      
      For the record, the select order for setting the filename field in
      dhcpd.conf is:
      
       1. nodes.next_pxe_boot_path for node
       2. nodes.pxe_boot_path for node
       3. "pxe_boot_path" node_attribute for node
       4. "pxe_boot_path" node_type_attribute for node type
       5. don't set (i.e., use the dhcpd.conf global default).
      99a462a8
  21. 19 Jan, 2012 1 commit
    • Leigh B Stoller's avatar
      Deprecate the use of jailip in the nodes table, for local dynamic · 1a52760a
      Leigh B Stoller authored
      virtual nodes. We now create an interfaces table entry so that we do
      not special code to find the control network interface. This entry is
      delated along with the node entries when the experiment is swapped
      out.
      
      Of course, we still have existing nodes with jailip entries, so not
      much code was removed, but this saves me from having to add more
      special cases for XEN elabinelab, and at some point we can remove the
      deprecated code.
      1a52760a
  22. 12 Jan, 2012 2 commits
  23. 28 Nov, 2011 1 commit
  24. 10 Nov, 2011 2 commits
  25. 26 Sep, 2011 2 commits
  26. 22 Sep, 2011 1 commit
  27. 20 Sep, 2011 2 commits
  28. 17 Aug, 2011 1 commit