1. 23 Jun, 2004 1 commit
    • Leigh B. Stoller's avatar
      Switch to "dynamic" creation of certain virtual nodes (jail/pcvm and · 4d5620c2
      Leigh B. Stoller authored
      vserver/pcplab). Rather then 10000s of fixed node entries in the DB,
      create node entries on the fly as needed (assign_wrapper), and then
      delete them when they are no longer used (nfree). When new nodes check
      in, no longer create all those nodes table entries (utils/newnode.in
      and tbsetup/plab/libplab.py.in).
      
      I've added a new library: db/Node.pm which is something I started a
      while back, and decided to commit, along with the support for creating
      and deleting virtual nodes. CreateVnodes() creates a new set of nodes,
      choosing non-conflicting names in the DB, and then immediately
      reserves them to the pid/eid specified. DeleteVnodes takes a list of
      vnodes and deletes them from nodes,reserved,etc. This library does a
      few other things which I am going to be playing with, so you might
      want to go read the comment at the top of the file. Feel free to speak
      up. CreateVnodes() is from called assign_wrapper when a node type has
      the "isdynamic" property. Otherwise does the existing avail/nalloc
      stuff. DeleteVnodes() is called from nfree when the node type has the
      isdynamic property.
      
      I've added a script (sql/delvnodes.pl) to run after updating the DB
      and software. All free pcvm and pcplab virtual nodes are deleted from
      the DB; reserved ones will get deleted whenever their experiment ends.
      I've noted all of this in doc/UPDATING, including setting the
      isdynamic property on pcvm in the node_types table.
      
      I've left tbsetup/plab/libplab.py.in to create a single pcplab node
      for the management sliver (still called -20). We can worry about this
      later.
      
      All this for modelnet?
      4d5620c2
  2. 08 Apr, 2004 1 commit
  3. 23 Feb, 2004 1 commit
  4. 11 Feb, 2004 1 commit
    • Leigh B. Stoller's avatar
      Kill off all of the old osid handling that nfree did. When a node is · d8dbe6ff
      Leigh B. Stoller authored
      released, all of def_boot_osid,temp_boot_osid,next_boot_osid is cleared.
      bootinfo currently uses the nodes free/alloc status to determine if the
      node gets PXEWAIT, but will eventually switch to looking at the osids;
      A node with no osids set (as will be when free) will go into PXEWAIT. This
      will allow os_load of free nodes!
      
      Change temporary locked pid/eid to a real pid/eid (emulab-ops/nfree-locked)
      to avoid transient problems in tmcd, where isalive would cause tmcd to
      core dump cause the reserved table had a nonexistent pid/eid setting.
      d8dbe6ff
  5. 10 Feb, 2004 1 commit
  6. 13 Jan, 2004 1 commit
  7. 10 Dec, 2003 1 commit
  8. 13 Oct, 2003 1 commit
  9. 04 Sep, 2003 1 commit
  10. 26 Aug, 2003 1 commit
  11. 22 Jul, 2003 1 commit
  12. 13 May, 2003 1 commit
  13. 28 Apr, 2003 1 commit
  14. 14 Apr, 2003 1 commit
  15. 18 Mar, 2003 1 commit
    • Chad Barb's avatar
      · e928fbe9
      Chad Barb authored
      Here it is; reswap.
      
      nfree
         - modified to put node in FREE_DIRTY when it is freed
      
      assign_wrapper
         - '-u' update switch added.
      
      os_setup
         - doesn't reboot node which is already in RES_READY
      
      tbswap
         - calls all this stuff appropriately
      e928fbe9
  16. 11 Mar, 2003 1 commit
    • Chad Barb's avatar
      · db5cd7f7
      Chad Barb authored
      Added '-x' switch;
      when specified, nfreeing a physical node results in
      any virtual node sitting on that physical node to be freed as well.
      
      (This should probably be the default behavior.)
      db5cd7f7
  17. 06 Jan, 2003 1 commit
  18. 19 Nov, 2002 1 commit
  19. 16 Nov, 2002 1 commit
  20. 31 Oct, 2002 1 commit
  21. 22 Oct, 2002 2 commits
  22. 21 Oct, 2002 1 commit
  23. 18 Oct, 2002 1 commit
    • Mac Newbold's avatar
      Merge the newstated branch with the main tree. · 5c961517
      Mac Newbold authored
      Changes to watch out for:
      
      - db calls that change boot info in nodes table are now calls to os_select
      
      - whenever you want to change a node's pxe boot info, or def or next boot
      osids or paths, use os_select.
      
      - when you need to wait for a node to reach some point in the boot process
      (like ISUP), check the state in the database using the lib calls
      
      - Proxydhcp now sends a BOOTING state for each node that it talks to.
      
      - OSs that don't send ISUP will have one generated for them by stated
      either when they ping (if they support ping) or immediately after they get
      to BOOTING.
      
      - States now have timeouts. Actions aren't currently carried out, but they
      will be soon. If you notice problems here, let me know... we're still
      tuning it. (Before all timeouts were set to "none" in the db)
      
      One temporary change:
      
      - While I make our new free node manager daemon (freed), all nodes are
      forced into reloading when they're nfreed and the calls to reset the os
      are disabled (that will move into freed).
      5c961517
  24. 03 Oct, 2002 2 commits
  25. 27 Sep, 2002 1 commit
  26. 26 Sep, 2002 2 commits
  27. 14 Aug, 2002 1 commit
  28. 04 Jul, 2002 1 commit
  29. 14 May, 2002 2 commits
  30. 13 May, 2002 2 commits
  31. 22 Apr, 2002 2 commits
  32. 03 Apr, 2002 1 commit
  33. 02 Apr, 2002 1 commit
  34. 10 Jan, 2002 1 commit
    • Leigh B. Stoller's avatar
      A set of capture/capserver/DB changes. · 8ec05f0d
      Leigh B. Stoller authored
      Capserver and capture now handshake the owner/group of the tipline.
      Owner is defaults to root, and the group defaults to root when the
      node is not allocated. Capture will do the chmod after the handshake,
      so if boss is down when capture starts, the acl/run file will get 0,0,
      but will get the proper owner/group later after its able to handshake.
      As a result, console_setup.proxy was trimmed down and cleaned up a
      bit, since it no longer has to muck with some of this stuff.
      
      A second change was to support multiple tiplines per node. I have
      modified the tiplines table as such:
      
      	| Field   | Type        | Null | Key | Default | Extra |
      	+---------+-------------+------+-----+---------+-------+
      	| tipname | varchar(32) |      | PRI |         |       |
      	| node_id | varchar(10) |      |     |         |       |
      	| server  | varchar(64) |      |     |         |       |
      
      That is, the name of the tip device (given to capture) is the unique
      key, and there can be multiple tiplines associated with each node.
      console_setup now uses the tiplines table to determine what tiplines
      need to be reset; used to be just the name of the node_id passed into
      console_setup. Conversely, capserver uses the tipname to map back to
      the node_id, so that it can get the owner/group from the reserved
      table.
      
      I also removed the shark hack from nalloc, nfree, and console_reset,
      since there is no longer any need for that; this can be described
      completely now with tiplines table entries. If we ever bring the
      sharks back, we will need to generate new entries. Hah!
      8ec05f0d