1. 13 Dec, 2001 1 commit
  2. 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
  3. 17 Oct, 2001 2 commits
  4. 30 Sep, 2001 1 commit
  5. 29 Sep, 2001 2 commits
  6. 18 Sep, 2001 3 commits
  7. 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
  8. 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
  9. 29 Aug, 2001 1 commit
  10. 24 Aug, 2001 2 commits
  11. 26 Jul, 2001 1 commit
  12. 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
  13. 29 Jun, 2001 2 commits
  14. 16 May, 2001 1 commit
  15. 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
  16. 09 Apr, 2001 1 commit
  17. 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
  18. 27 Mar, 2001 1 commit
  19. 26 Mar, 2001 1 commit
  20. 25 Mar, 2001 1 commit
  21. 14 Mar, 2001 1 commit
  22. 20 Feb, 2001 1 commit
  23. 16 Jan, 2001 2 commits
  24. 09 Jan, 2001 1 commit
  25. 05 Jan, 2001 1 commit
  26. 04 Jan, 2001 3 commits
  27. 03 Jan, 2001 1 commit
  28. 28 Dec, 2000 1 commit
  29. 27 Dec, 2000 1 commit
  30. 21 Dec, 2000 1 commit
  31. 18 Dec, 2000 1 commit