1. 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
  2. 18 Sep, 2012 1 commit
  3. 14 Sep, 2012 1 commit
    • Leigh Stoller's avatar
      "improvements" to prereserve: · f7219346
      Leigh 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
  4. 12 Sep, 2012 2 commits
  5. 04 Sep, 2012 4 commits
  6. 31 Aug, 2012 3 commits
  7. 30 Aug, 2012 3 commits
    • Leigh Stoller's avatar
      More bits and pieces for exporting images from one Emulab to another. · 4c444cd5
      Leigh Stoller authored
      image_metadata.php will return an Emulab style image descriptor in XML
      format. A remote emulab, given an image URL, will grab this XML
      description and use it to create a local descriptor. Inside the
      descriptor is an additional URL that is used to download ndz file.
      
      The dumpdescriptor script is now web accessible, and takes a new -e
      (export) option that adds the extra URL and other bits that are needed
      to import the descriptor and the image.
      
      On the Show Image page, show the metadata URL, which is suitable for
      using in an NS file or an rspec (when that code is committed).
      4c444cd5
    • Leigh Stoller's avatar
      Changes to support cloning an openvz container image. · 1517aa14
      Leigh Stoller authored
      Derive type list from underlying image.
      1517aa14
    • Gary Wong's avatar
      Add a "ctrladdr" utility to show (un)allocated addresses on the control net. · 9047e21a
      Gary Wong authored
      Right now, the only addresses it knows are allocated are anything assigned
      in the interfaces table with a "ctrl" role, and anything in the dynamic
      pool in the virt_node_public_addr table.  (And the reserved network and
      broadcast addresses.)
      
      This needs to be extended to anything else we know about!
      
      By default, the output is supposed to be easy to parse and simply
      displays the first available address.  More than one available address
      can be requested with the "-n" option (e.g. "-n 10" will show the
      first ten unallocated addresses).  "-n 0" will show every free
      address on the subnet.
      
      The "-a" option (meant more for human consumption) also describes
      allocated addresses.  For instance, "ctrladdr -a -n 0" will show
      every address on the control net, and what it's used for (if
      anything).  "-r" will compress ranges of consecutive free addresses
      onto a single line.
      
      To test whether a particular address is in use, invoke it as (e.g.)
      "ctrladdr -t 155.98.36.1".  This will give an exit code of 0 if the
      address is available, and 1 if used.  Any other options are ignored
      if "-t" is specified.
      9047e21a
  8. 29 Aug, 2012 3 commits
  9. 27 Aug, 2012 1 commit
    • Leigh Stoller's avatar
      Add support for creating snapshot images of OpenVZ containers via the · fdd08bb4
      Leigh Stoller authored
      web interface.
      
      Most of this commit is about making it easier to create the
      descriptors (of any kind) The newimageid_ez page now takes an optional
      node_id on which to base the new descriptor; most of the fields are
      initialized.
      
      You can also provide optional imageid and osinfo arguments, which
      allows for slightly less info to be initialized.
      
      Then on the ShowNode page, the link to create an image will take you
      to the snapshot image page if the user has write access to the image,
      otherwise to the newimageid_iz page to create and snapshot a new
      image descriptor.
      fdd08bb4
  10. 08 Aug, 2012 1 commit
  11. 01 Aug, 2012 1 commit
  12. 31 Jul, 2012 1 commit
  13. 25 Jul, 2012 1 commit
  14. 24 Jul, 2012 1 commit
    • Mike Hibler's avatar
      Add a 'disabled' field to the subbosses table. · e08bfeec
      Mike Hibler authored
      This allows us to more easily disable a subboss in the event of a temporary
      subboss outage (e.g., hardware failure). Previously we would have to remove
      the related rows from the DB and restore them later.
      e08bfeec
  15. 11 Jul, 2012 1 commit
  16. 02 Jul, 2012 1 commit
  17. 26 Jun, 2012 1 commit
  18. 21 Jun, 2012 1 commit
  19. 12 Jun, 2012 1 commit
  20. 11 Jun, 2012 1 commit
  21. 07 Jun, 2012 1 commit
    • Leigh Stoller's avatar
      New script, clone_image to simplify create/snapshot from a node. · b01c991d
      Leigh 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
  22. 06 Jun, 2012 2 commits
  23. 04 Jun, 2012 1 commit
  24. 01 Jun, 2012 1 commit
  25. 29 May, 2012 1 commit
  26. 23 May, 2012 1 commit
  27. 22 May, 2012 1 commit
  28. 16 May, 2012 2 commits
    • Leigh Stoller's avatar
      Another protogeni checkbox; scriptify and simplify adding "special" · cf517af6
      Leigh 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
    • Leigh Stoller's avatar
      Minor tweak to comment. · f9d835aa
      Leigh Stoller authored
      f9d835aa