1. 21 May, 2003 1 commit
    • Leigh B. Stoller's avatar
      Minor stats changes for dealing with swapmodify; be sure to credit for · cb309ff2
      Leigh B. Stoller authored
      each portion of the experiment as it is modified.
      
      Also add expt_swap_uid so that we know who did the last operation, and
      so we can charge/credit the right person. So, if joe swaps in the
      experiment and jane swaps it out, joe gets charged. If jane swaps in
      the experiment and joe modifies it, jane gets credit for the first
      portion, and joe will later get charged for the second portion.
      
      Took longer to explain then to implement ...
      
      Lbs
      cb309ff2
  2. 15 May, 2003 3 commits
    • Leigh B. Stoller's avatar
      Minor bug fix to TBImageLoadMaxOkay(). · 342a039c
      Leigh B. Stoller authored
      342a039c
    • Leigh B. Stoller's avatar
      A few more minor changes. Change exitcode to signed since in mysql, -1 · e6644faa
      Leigh B. Stoller authored
      is not a string of bits, but really 0 when the type is unsigned.
      Sheesh. Add link from testbed_stats to experiment_resources to get
      better info in showstats.
      e6644faa
    • Leigh B. Stoller's avatar
      Split the experiment stats table into two parts. The first is the · a382994d
      Leigh B. Stoller authored
      per-experiment instantiation with aggregate data like the number of
      swapins, the dates and the like. The other part is the per
      swapin/modify stats. These are number of pnodes, links, lans,
      etc. Long term, I think we want more precise swapin stats, and with
      experiment modify in the mix, we need to have multiple stat records
      per experiment, but do not need to duplicate all the stuff in the
      other table just mentioned.
      
      To reduce the amount the table size, we cross reference the tables by
      index only instead of with pid,eid and the like. We use exptidx to
      link experiments, experiment_stats, and the new experiment_resources
      table. experiment_resources and stats are linked by another index in
      the resources table, which indicates which is the current resource
      row. On a modify, a new resource record is created, and the stats
      record updated to point to the new (latest) resource record.
      
      Web Changes: Improve showstats and showexpstats. Make them user
      a...
      a382994d
  3. 14 May, 2003 1 commit
  4. 12 May, 2003 1 commit
  5. 29 Apr, 2003 2 commits
  6. 28 Apr, 2003 5 commits
  7. 17 Apr, 2003 1 commit
  8. 11 Apr, 2003 1 commit
    • Chad Barb's avatar
      · a0248828
      Chad Barb authored
      Added site variables ('sitevars').
      These are stored in the sitevariables database table.
      Each one has a name, a description (NOT OPTIONAL!), a
      default value, and a current value.
      If the current value is NULL, the default value is used.
      
      Soon, a mechanism will be added to the install process to
      ensure all needed site variables exist before installing;
      more on that when it is committed.
      
       - Added 'editsitevars.php3' page, accessable to admins
         via the 'Edit Site Variables' menu option.
      
       - Added 'setsitevar' script,
         an interface for listing, viewing in detail, and setting
         site variables.
      
       - Web interface now uses 'web/nologins' and 'web/message'
         instead of one-off database tables.
      
      NOTE that setting a variable to the default value and
      setting a variable to a value which is string-identical
      are NOT the same thing.
      (This doesn't matter yet, but when we push default values out to
       remote sites as part of our install, it will.)
      a0248828
  9. 03 Apr, 2003 1 commit
    • Chad Barb's avatar
      · 765de560
      Chad Barb authored
      Added new feature 'Experiment Modify'.
      Now available (to admins only for now) from the showexp page.
      
      Warning! doing a modify which alters the topology will probably
      require a "reboot all nodes" afterwards.
      (There will be a checkbox soon in the modify experiment page.)
      
      Adding/removing delay nodes seems to work fine without reboots, though.
      
      Warning! If the new version of the experiment cannot be mapped
       (not enough nodes available, for instance) the experiment will be
       swapped out! This will get fixed later.
      
      Prerun backs up the experiment topology, so using a bad NS
      file doesn't result in experiment termination.
      
      As part of this, added library functions to libdb to
      delete, backup, and restore both virtual and physical experiment state.
      765de560
  10. 27 Mar, 2003 1 commit
    • Leigh B. Stoller's avatar
      Changes to permission checks for nodes, experiments, and images. · 09bec812
      Leigh B. Stoller authored
      In addition to the usual checks, project_root and group_root (in the
      project) get the same permission as if they were in the subgroups with
      group_root permission. This means they can swap/terminate/reboot etc
      in subgroups even though they are not members of the subgroups.
      There is still some copy problems with files, but leaving that till
      later to deal with.
      09bec812
  11. 26 Mar, 2003 1 commit
    • Leigh B. Stoller's avatar
      Add "gid" slot to the images table for changing permission scheme from · 4c56daf6
      Leigh B. Stoller authored
      only pid, to pid/gid like most other things in the testbed. Also add a
      "global" slot to denote images that are globally available to all
      projects (system images). The older "shared" attribute is now used to
      denote images that are shared within a project (available to all
      subgroups in the project). The migration path for existing DBs is
      given in the migrate file. Be sure to run those commands on an
      existing testbed or things will break!
      
      www/newimageid, www/newimageid_ez: A bunch of changes for
      shared/global attributes. Added a group menu to the form so users can
      create images in subgroups. Beefed up the Java code that constructs
      the path name to use the gid, shared, and global attributes of the
      form to give the user the best possible path that we can. Improved the
      pathname checking code so that we do not allow just any old path in
      case the user elects to disregard the path we carefully constructed
      for them. Also check the proj/group membership, and setup defaults for
      users that have permission in just one pid/gid to create images.
      
      libdb.in: Changed permission check in TBImageIDAccessCheck() to
      reflect shared/global attribute changes.
      
      os_load: Get rid of test that checked path of the image. The path
      checking is done in the web interface anyway, so why duplicate in 4
      places. Other minor changes reflecting shared->global name change.
      Also note that images can come from the group directory now.
      
      create_image: Get rid of test that checked path of the image. The path
      checking is done in the web interface anyway, so why duplicate in 4
      places. Also note that images can come from the group directory now.
      
      www/dbdefs: Changed permission check in TBImageIDAccessCheck() to
      reflect shared/global attribute changes.
      
      www/showimageid_list, www/showstuff: Minor global/shared attribute
      changes.
      
      www/menu: Change osids/imageids pointer to point to the image list,
      not the osid list. This is more reasonable for mere users who have
      access to the EZ form, and thus never really need to concern
      themselves with osids.
      
      www/editimageid: Add proper pathname checking. There were no checks at
      all before!
      4c56daf6
  12. 20 Mar, 2003 2 commits
    • Leigh B. Stoller's avatar
      A possible hack/fix to the concurrency problem. I have not learned · 75936b39
      Leigh B. Stoller authored
      anything conclusive, other than fork confuses mysqld, and our attempt
      to unconfuse it by closing/opening the DB connection in the child,
      confuses it even more! The parent connection is shutdown and then
      restarted as well. In node_reboot, this could happen 10 times in rapid
      succession as we fork as child for each node, and that appears to
      strain the server even more (with 20 rapid connects).
      
      So, I added a select(0.3) in TBdbfork() (in the child) to see if that
      slows things down enough. In my tests, the length of time between the
      parent and child operations makes a real difference. With a delay in
      the child, the parent connection is not closed/restarted.
      
      The astute reader will realize that I have no actual clue; just
      grasping at, uh, threads.
      75936b39
    • Leigh B. Stoller's avatar
  13. 19 Mar, 2003 1 commit
    • Mac Newbold's avatar
      New slothd change: · b73aee17
      Mac Newbold authored
      node_reboot reports node activity into the "last_ext_act" column of
      node_activity. (Ie activity that is external to the node.)
      
      This means that swapin, swapout, reload, etc etc, anything that reboots
      the node from boss/ops, will count as activity.
      b73aee17
  14. 13 Mar, 2003 1 commit
    • Chad Barb's avatar
      · 2a2c1542
      Chad Barb authored
      Added BESTOWGROUPROOT permission.
      2a2c1542
  15. 12 Mar, 2003 1 commit
    • Chad Barb's avatar
      · fa716ae9
      Chad Barb authored
      Added TB_PROJECT_GROUPGRABUSERS to Perl side, for consistency.
      fa716ae9
  16. 11 Mar, 2003 1 commit
    • Chad Barb's avatar
      · d333686c
      Chad Barb authored
      Fixed ALLOCSTATE consts.
      d333686c
  17. 07 Feb, 2003 1 commit
    • Chad Barb's avatar
      · 60563956
      Chad Barb authored
      Added Alloc State machine library calls.
      (NodeSetAllocState, NodeGetAllocState)
      60563956
  18. 02 Feb, 2003 1 commit
  19. 31 Jan, 2003 1 commit
  20. 29 Jan, 2003 4 commits
  21. 15 Jan, 2003 3 commits
  22. 18 Dec, 2002 1 commit
    • Leigh B. Stoller's avatar
      Two new routines. TBNodeBootReset() resets the startup state for a · b485a466
      Leigh B. Stoller authored
      node. Used in new tbrestart code for replaying experiments. It remains
      to be seen if this is a workable approach.
      
      TBNodeStateWait() is really WaitTillAlive, which I need in several new
      spots now. Its not as general purpose as it seems though, since there
      are only a couple of terminal states (isup) that you can actually wait
      for by querying the DB. But, I'm loathe to add any more event code to
      the system.
      b485a466
  23. 06 Dec, 2002 2 commits
  24. 14 Nov, 2002 1 commit
    • Leigh B. Stoller's avatar
      libdb: Add TBIPtoNodeID utility function. Also some minor jail related · bed7c3ee
      Leigh B. Stoller authored
      changes; add optinal jailflag argument to TBIsNodeVirtual, and add some
      constants for assigning port ranges to jailed nodes.
      
      newwanode: Allow reuse of existing node. So, if called with an IP that
      already exists in the DB, reuse those records (nodes, interfaces,
      reserved) rather than creating a new one. The web page makes sure that
      the calling node has a valid IP (REMOTE_ADDR equals IP it gives us),
      so it typically means an exiting node is being reinstalled (happening
      with RON nodes right now!).
      bed7c3ee
  25. 05 Nov, 2002 1 commit
  26. 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