1. 04 Jul, 2002 1 commit
  2. 14 May, 2002 2 commits
  3. 13 May, 2002 2 commits
  4. 22 Apr, 2002 2 commits
  5. 03 Apr, 2002 1 commit
  6. 02 Apr, 2002 1 commit
  7. 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
  8. 07 Jan, 2002 1 commit
  9. 13 Dec, 2001 1 commit
  10. 24 Oct, 2001 1 commit
    • Leigh B. Stoller's avatar
      Largish rework of nfree. Started out that I just wanted to map the · 895a44f6
      Leigh B. Stoller authored
      default OSID from the node_types table, to a specific OSID from the
      partition table on the actual node. This is to avoid setting the boot
      OSID to RHL_STD when the node is released, which causes a boot
      failure. Okay, so I added a library routine to do this (yanked out of
      os_setup where I did the code originally). This would solve most of
      the problems, except where there was no OS loaded that would satisfy
      the mapping, in which case the user must have done an os_load, and now
      that auto schedules a reload. Anyway, seemed like this should work.
      Ha! Mysql locking is downright dumb; all tables used within a lock
      region must be locked. nfree was already locking 9 tables, and in
      order to call out to library routines (which might use anything) I
      would have to lock the world, which is not actually possible anyway.
      Why all this locking in nfree in the first place? The idea is that
      there is a race between releasing the node from reserved, and cleaning
      up all those tables (interfaces, delays, nodes, etc). We don't want to
      free a node, and have it get allocated to another experiment before
      the cleanup is done, since that would mess up the state of the node.
      The solution (albiet a crufty one) was to lock just the reserved table
      (which guards against multiple people trying to nfree the same node at
      the same time) and switch the reservation out of the pid,eid and into
      a holding reservation. This effectively removes the node from the
      users control, but keeps it reserved. Then I unlock the reserved
      table. With that done, I can clean up all those tables without any
      locking, since the node is still reserved. After cleanup, I can either
      delete the reservation, or move it to the next reserve or reload
      reservation if those were pending. No locking is needed at this point
      since single table changes are atomic (and nalloc locks reserved
      anyway). Okay, so now we sit back and see if this was a good idea.
      895a44f6
  11. 17 Oct, 2001 2 commits
  12. 30 Sep, 2001 1 commit
  13. 29 Sep, 2001 2 commits
  14. 18 Sep, 2001 3 commits
  15. 17 Sep, 2001 1 commit
    • Robert Ricci's avatar
      Added support for the new current_reloads table - this table is intended · 455dcee9
      Robert Ricci authored
      to contain a list of reloads currently in processes. It is filled by
      os_load, and is cleared out by the tmcd 'reset' command or by nfree.
      The tmcd 'loadaddr' command now uses this table instead of the reloads table.
      
      Also added Frisbee support to sched_reload, and changed the Frisbee command
      line option to os_load to '-r' to avoid a conflict with sched_reload's '-f'
      option.
      455dcee9
  16. 06 Sep, 2001 1 commit
    • Leigh B. Stoller's avatar
      Changes to nfree in how scheduled reloads are handled. Instead of · 2007505d
      Leigh B. Stoller authored
      firing off an os_load, just move the node from its current reservation
      to emulab-ops/reloadpending. This moves the operation out of band from
      the user's perspective (he gets more immediate response when an
      experiment ends, and besides we cannot handle mass reloads anyway, and
      so this approach is unusable until Frisbee.
      
      Change the reload_daemon to look for free nodes that need a reload (as
      before) *and* nodes in emulab-ops/reloadpending (as put there by nfree).
      In this case, the imageid comes from the reloads table instead of the
      node-types table. I also updated the reload_daemon to use libdb routines.
      
      Also change testbed/reloading to emulab-ops/reloading. Maybe someday
      I'll remove these hardwired strings.
      2007505d
  17. 29 Aug, 2001 1 commit
  18. 24 Aug, 2001 2 commits
  19. 26 Jul, 2001 1 commit
  20. 10 Jul, 2001 1 commit
    • Mac Newbold's avatar
      Added sched_reserve. Works kind of like sched_reload, but for a reservation. · e1f4263c
      Mac Newbold authored
      Rob and I noticed that when we need to do maintainance to a node, its hard
      to grab it when it gets freed before it gets taken again. So this will allow
      admins to set up nodes so that when the current owner frees them, they
      immediately are moved into another experiment. For instance, if I need to do
      an upgrade on all the machines in the testbed, I can do:
      
      sched_reserve testbed down pc1 pc2 pc3 [...] pc40
      
      and it will immediately reserve any free nodes, skip any that are already
      in testbed/down, and add an entry to the next_reserve table for any nodes
      that are already reserved. Then nfree checks for entries in the next_reserve
      table before it lets any nodes go (much like it does for the reloads table),
      and moves them into the expt before it can get reserved again. So we can
      guarantee that the next time a node is freed, it will be saved for us.
      
      Note that this can also be useful to accumulate nodes for a large experiment,
      since you can make sure you get them as soon as the current owner is done.
      e1f4263c
  21. 29 Jun, 2001 2 commits
  22. 16 May, 2001 1 commit
  23. 03 May, 2001 1 commit
    • Leigh B. Stoller's avatar
      A slew of changes for new images/os_info tables. disk_images is gone, · e39b61a2
      Leigh B. Stoller authored
      replaced by the "images" table. New os_info table is added. New web
      pages to add and delete OSIDs to/from the os_info table, for use in
      the NS file. tb-create-os is gone. handle_os no longer operates on the
      tbcmds file, and no longer writes anything into the ir file. Moved the
      setting up of os state (nodes table) from os_setup to handle_os, where
      it should be. os_load and sched_reload now take a single argument, the
      name of the imageid from the images table.
      e39b61a2
  24. 09 Apr, 2001 1 commit
  25. 29 Mar, 2001 1 commit
    • Leigh B. Stoller's avatar
      A set of change for exporting project and user directories only to · 407cd1ac
      Leigh B. Stoller authored
      machines in the experiment. exports_setup runs on paper and queries
      the DB, generating a set of export lines. That is sent over to
      plastic, and piped into exports_setup.proxy, which generates a new
      /etc/exports file and restarts mountd. All of the client setup scripts
      have been changed to mount the project and user directories.
      407cd1ac
  26. 27 Mar, 2001 1 commit
  27. 26 Mar, 2001 1 commit
  28. 25 Mar, 2001 1 commit
  29. 14 Mar, 2001 1 commit
  30. 20 Feb, 2001 1 commit
  31. 16 Jan, 2001 1 commit