1. 12 Oct, 2009 1 commit
    • David Johnson's avatar
      Add the ability to load images on virtnodes. For now, we just overload · c6c57bc9
      David Johnson authored
      the tb-set-node-os command with a second optional argument; if that is
      present, the first arg is the child OS and the second is the parent OS.
      We add some new features in ptopgen (OS-parentOSname-childOSname) based
      off a new table that maps which child OSes can run on which parents, and
      the right desires get added to match.  We setup the reloads in os_setup
      along with the parents.  Also needed a new opmode, RELOAD-PCVM, to handle
      all this.
      
      For now, users only have to specify that their images can run on pcvms, a
      special hack for which type the images can run on.  This makes sense in
      general since there is no point conditionalizing childOS loading on
      hardware type at the moment, but rather on parentOS.  Hopefully this stuff
      wiill mostly work on shared nodes too, although we'll have to be more
      aggressive on the client side garbage collecting old frisbee'd images for
      long-lived shared hosts.
      
      I only made these changes in libvtop, so assign_wrapper folks are left in
      the dark.
      
      Currently, the client side supports frisbee.  Only in openvz for now, and
      this probably breaks libvnode_xen.pm.  Also in here are some openvz
      improvements, like ability to sniff out which network is the public
      control net, and which is the fake virtual control net.
      c6c57bc9
  2. 02 Oct, 2009 1 commit
  3. 01 Oct, 2009 1 commit
  4. 30 Sep, 2009 1 commit
  5. 15 Sep, 2009 2 commits
  6. 20 Aug, 2009 1 commit
    • Ryan Jackson's avatar
      Make newnode scripts work on Linux · 43bb0e7c
      Ryan Jackson authored
      FreeBSD network devices are named after the device driver used, whereas
      Linux network devices are named after the interface type, such as 'eth0'
      for the first ethernet interface.  The newclient script would send each
      interface name to the server via the 'ifacenameX' parameter, and
      newnodecheckin.php would use it to get the driver type for the
      interface.  This works with the FreeBSD MFS, but not with the Linux one.
      Without this fix, all reported interfaces would be of type 'eth', which
      isn't helpful.
      
      To fix this, a new parameter was added to newnodecheckin.php called
      'ifacedriverX' (where X is the interface number).  This parameter is
      optional for backward compatibility with existing newnode MFS images.
      If present, it is used to specify the interface type.  If not, the
      ifacenameX parameter is munged as before to extract the interface type.
      
      The newclient script reports this parameter under both FreeBSD and
      Linux.  On FreeBSD, the interface name is munged to extract the type.
      On Linux, the driver name is extracted from sysfs.
      43bb0e7c
  7. 19 Aug, 2009 3 commits
  8. 18 Aug, 2009 1 commit
    • Ryan Jackson's avatar
      Lots of linux "MFS" changes · 93a3a065
      Ryan Jackson authored
      * linuxmfs: (27 commits)
        Use LookupByIP in the local area case
        Don't check server cert in MFS environment
        Add wipe-all-disks-on-reloading code
        Generate random UUID for linux root fs
        Cleanup of mdev.conf; sane device permissions
        New root password
        add kmem group
        Make sure ETHERTYPE_LOOPBACK is defined
        Add teachswitch to the build
        Add support for old GNU tar format
        New root passwd
        Make 'permissions' target work again
        Fixes to device permissions
        Add osconfig to the build
        Add the file command to build
        Make osconfig work on linux MFS
        Detach any loopback devices left over after mounting initrds.
        Fix for handling ide devices as swap partitions
        Make sure F10's dhclient state gets wiped
        Make sure to reread partition table after writing image
        ...
      93a3a065
  9. 17 Aug, 2009 1 commit
  10. 14 Aug, 2009 1 commit
  11. 07 Aug, 2009 2 commits
  12. 05 Aug, 2009 2 commits
  13. 04 Aug, 2009 1 commit
    • Kevin Atkinson's avatar
      Implement frontend and middleend support for loading multiple images · e7871305
      Kevin Atkinson authored
      at once with Frisbee (excludes the actual MFS changes).
      
      Os_load now takes take a list of comma serrated image names for the
      "-i" and "-m" options.  The default OS is the OS for the last image
      specified in the list.  I also changed the "-p" option of osload to
      search both the project specified and emulab-ops for the image rather
      than just the project specified in order to simplify specifying
      multiple images (and because I personally found that behavior annoying
      when using osload).
      
      I modified the current_reloads table to be able to specify more than one
      image for a node by adding an "idx" column which controls the order of
      the reloads.  I also added a "prepare" column to the table (explained
      below)
      
      I modified tmcd to basically loop over the entries in the table and
      create a multiline LOADINFO responsive, and modified rc.frisbee to
      handle the multiline response and load each image in turn.
      
      I modified os_load to take a new option "-P" which will tell rc.frisbee
      to zap the superblocks even if a whole disk image is not specified.
      To do this I set the prepare entry for the first image in the
      current_reloads table to true.  Tmcd than passes this into to
      rc.frisbee in the LOADINFO line.  When rc.frisbee sees this it will
      make sure to zap the superblock before loading that image.
      
      To support having multiple images as the default, "default_imageid"
      can now be a comma separated list.  I implemented a hack to be able to
      set multiple imageids via editnodetype.php3.  Basically the form
      splits default_imageid into default_imageid_0, default_imageid_1, etc
      and than adds an empty default_imageid_# slot to allow adding an
      imageid.  Multiple images can be added by adding one image, than
      submitting the form, and than adding another into the empty slot.  Not
      the best, but I don't thing this will be a very common operation.
      When the form is submitted it will than combine all default_imageid_#
      into a comma separated list ignoring any that are deleted or set to
      "No ImageID" (ie 0).
      
      Everything will work fine with old MFSs as long as only one image is
      loaded.  If multiple images are loaded with an old MFS, an email will
      be sent to testbed-ops.  This works by having tmcd detect old MFS's by
      using the version number and setting the state to RELOADOLDMFS.  Stated
      will pick up on the and send the email to testbed-ops via a trigger.
      e7871305
  14. 29 Jul, 2009 2 commits
  15. 15 Jul, 2009 1 commit
  16. 09 Jun, 2009 1 commit
  17. 20 May, 2009 1 commit
  18. 08 May, 2009 8 commits
  19. 06 May, 2009 1 commit
    • Robert Ricci's avatar
      A few new simple javascript functions to manage the window.onload · e31b59ec
      Robert Ricci authored
      variable - we have lots of javascript that wants to install its
      intiailization code there, and these functions just provide a simple
      mechanism for doing that. So. From now on:
      
          Thou Shalt Not Mess With window.onload Or window.onunload Directly.
          Instead, Thou Shalt Call addLoadFunction() and addUnloadFunction().
      e31b59ec
  20. 01 May, 2009 3 commits
  21. 29 Apr, 2009 1 commit
  22. 27 Apr, 2009 1 commit
  23. 10 Apr, 2009 1 commit
  24. 04 Apr, 2009 1 commit
  25. 01 Apr, 2009 1 commit