1. 26 Aug, 2003 2 commits
  2. 25 Aug, 2003 1 commit
    • Austin Clements's avatar
      Added knowledge of Plab nodes. The correct ssh port is now given when · 4da7262a
      Austin Clements authored
      appropriate.  The node status information now reports SSHD port
      separately; doesn't report IP port ranges for Plab nodes; does report
      RPM's for virtual nodes; only reports BIOS version if it's specified
      in the DB; and, if a control net IP isn't found for a node (the case
      with virtnodes), it reports the control net IP of the physical node.
      4da7262a
  3. 20 Aug, 2003 1 commit
  4. 19 Aug, 2003 1 commit
  5. 07 Aug, 2003 1 commit
  6. 05 Aug, 2003 1 commit
    • Leigh B. Stoller's avatar
      The rest of the sync server additions: · 212cc781
      Leigh B. Stoller authored
      * Parser: Added new tb command to set the name of the sync server:
      
      	tb-set-sync-server <node>
      
        This initializes the sync_server slot of the experiment entry to the
        *vname* of the node that should run the sync server for that
        experiment. In other words, the sync server is per-experiment, runs
        on a node in the experiment, and the user gets to chose which node
        it runs on.
      
      * tmcd and client side setup. Added new syncserver command which
        returns the name of the syncserver and whether the requesting node
        is the lucky one to run the daemon:
      
          SYNCSERVER SERVER='nodeG.syncserver.testbed.emulab.net' ISSERVER=1
      
        The name of the syncserver is written to /var/emulab/boot/syncserver
        on the nodes so that clients can easily figure out where the server
        is.
      
        Aside: The ready bits are now ignored (no DB accesses are made) for
        virtual nodes; they are forced to use the new sync server.
      
      * New os/syncd directory containing the daemon and the client. The
        daemon is pretty simple. It waits for TCP (and UDP, although that
        path is not complete yet) connections, and reads in a little
        structure that gives the name of the "barrier" to wait for, and an
        optional count of clients in the group (this would be used by the
        "master" who initializes barriers for clients). The socket is saved
        (no reply is made, so the client is blocked) until the count reaches
        zero. Then all clients are released by writting back to the
        sockets, and the sockets are closed. Obviously, the number of
        clients is limited by the numbed of FDs (open sockets), hence the
        need for a UDP variant, but that will take more work.
      
        The client has a simple command line interface:
      
          usage: emulab-sync [options]
          -n <name>         Optional barrier name; must be less than 64 bytes long
          -d                Turn on debugging
          -s server         Specify a sync server to connect to
          -p portnum        Specify a port number to connect to
          -i count          Initialize named barrier to count waiters
          -u                Use UDP instead of TCP
      
          The client figures out the server by looking for the file created
          above by libsetup (/var/emulab/boot/syncserver). If you do not
          specify a barrier "name", it uses an internal default. Yes, the
          server can handle multiple barriers (differently named of course)
          at once (non-overlapping clients obviously).
      
          Clients can wait before a barrier in "initialized." The count on
          the barrier just goes negative until someone initializes the
          barrier using the -i option, which increments the count by the
          count. Therefore, the master does not have to arrange to get there
          "first." As an example, consider a master and one client:
      
      	nodeA> /usr/local/etc/emulab/emulab-sync -n mybarrier
      	nodeB> /usr/local/etc/emulab/emulab-sync -n mybarrier -i 1
      
          Node A waits until Node B initializes the barrier (gives it a
          count).  The count is the number of *waiters*, not including the
          master. The master is also blocked until all of the waiters have
          checked in.
      
          I have not made an provision for timeouts or crashed clients. Lets
          see how it goes.
      212cc781
  7. 28 Jul, 2003 1 commit
  8. 16 Jul, 2003 1 commit
  9. 09 Jul, 2003 1 commit
  10. 27 Jun, 2003 1 commit
  11. 17 Jun, 2003 1 commit
  12. 04 Jun, 2003 2 commits
  13. 29 May, 2003 2 commits
  14. 27 May, 2003 1 commit
  15. 20 May, 2003 3 commits
  16. 16 May, 2003 1 commit
    • Mac Newbold's avatar
      Show staleness of idle data in more places, since the only place it showed · d37885e1
      Mac Newbold authored
      before was idle view of the expt list. Now it shows in all (non-thumb)
      views.
      
      I also added it to the right hand table in the expt page.
      
      It also shows in the little expt lists in the user, group, and proj pages.
      (I'm already really glad those got consolidated into a single function.)
      
      Also cleaned up idle view a bit. Now that we show staleness and idle
      ignore anyway, we don't need text tags for them, and we no longer need the
      red dot that links to swap requests because of idlemail. So there's no
      longer the weird double-column thing in idle view.
      
      I'm still looking for a good way to non-intrusively mark expts in the expt
      list as being unswappable, so if you think of anything, let me know.
      (Maybe boldface, or a little lock icon or something?)
      d37885e1
  17. 15 May, 2003 1 commit
    • 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
      accessible so that mere users can see stats for themselves and for
      their projects. No ability for mere users (PIs) to look at another
      person's stats. Generally, these two pages need more work, but now
      they are more useful. I added Show Stats to the user info and project
      info pages to display per-usr/proj stats. Add more info in the
      showstats display, but the showexpstats display is still not pretty
      printed; just the raw tables.
      
      Rename a few fields, add some indexes, and otherwise make some minor
      changes that are sure to annoy everyone.
      a382994d
  18. 13 May, 2003 3 commits
  19. 01 May, 2003 1 commit
  20. 28 Apr, 2003 1 commit
    • Leigh B. Stoller's avatar
      Add support for new {user,group,project,experiment}_stats tables. · 5e5508bf
      Leigh B. Stoller authored
      The first three are aggregate tables, while the experiment stats table
      gets a record for each new experiment, and is updated when an
      experiment is swapped in/out/modify or terminated. Look at the table
      to see what is tracked. Once the experiment_stats record is updated,
      the aggregate tables are updated as necessary. There are a bunch of
      ugly changes to assign_wrapper to get the stats. Note that pnodes is
      not incremented until an experiment sucessfully swaps in. This is in
      leu of getting status codes; I'm not tracking failed operations yet,
      nor creating the log file that Jay wants. I'll do that in the next
      round of changes when we see how useful these numbers are.
      
      Most of the changes are to create/delete table entries where
      appropriate, and to display the records. Display is only under admin
      mode, and the display is raw; just a dump of the assoc tables in php.
      The last 100 experiment stats records are available via the Experiment
      List page, using the "Stats" show option at the top. Bad place, but
      will do for now.
      5e5508bf
  21. 22 Apr, 2003 1 commit
  22. 14 Apr, 2003 2 commits
  23. 11 Apr, 2003 2 commits
    • Mac Newbold's avatar
      Make swappability easy to toggle after expt creation. This hopefully will · 87045a9d
      Mac Newbold authored
      soon be used by admins only to grant swappability. For now, it is open to
      anyone who has expt modify access as well.
      
      The change is visible everywhere SHOWEXP is called, like showexp.php3 for
      instance.
      
      Also introduced toggle.php, a generic toggle script, similar to
      adminmode.php, but useful for just about anything. To add something, just
      add it to the list, specify the valid values it can have, and add its
      permission check and action. Now you don't need a different php page for
      each toggle switch. This page is already set up to take over from
      adminmode.php, but I didn't change things over just yet.
      
      (Should this go in the changelog?)
      87045a9d
    • Mac Newbold's avatar
      Add "sort by vname" for Mike (currently called only from showexp.php). · eb2cfc83
      Mac Newbold authored
      Sort by vname is now the default sort, and you can sort by node_id (the
      old sort), and by vname, by clicking on the column title, as usual.
      eb2cfc83
  24. 10 Apr, 2003 1 commit
  25. 09 Apr, 2003 2 commits
  26. 04 Apr, 2003 1 commit
    • Leigh B. Stoller's avatar
      Add "Address Line 2", City, State, and Zip as independent entities, · 5e38412f
      Leigh B. Stoller authored
      finally! These have been in the DB for a long time, but never used.
      As Eric pointed out, its easier to get realistic address info from
      people if we provide the right forms. The downside is that all current
      users will have to adjust their info the next time they edit their
      info. Thats okay. I thought about forcing all users to do it the next
      time they log in, but I figured people would scream.
      5e38412f
  27. 02 Apr, 2003 1 commit
  28. 27 Mar, 2003 1 commit
  29. 26 Mar, 2003 2 commits
    • 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
    • Mac Newbold's avatar
      First big commit/checkpoint of web changes for new slothd. · 52396569
      Mac Newbold authored
       - Added a bunch of functions to get time of last activity, hours idle,
         and staleness for nodes and experiments.
       - Fixed the showexp_list page to use the new idle measures, including
         idle view. Idle view now runs in about 1.3 seconds instead of 13.
       - Changed all the "show" functions for nodes and expts to show idleness.
      
      More changes will be coming, but I wanted to commit this before I install
      it for real.
      52396569