1. 08 Oct, 2007 1 commit
    • Russ Fish's avatar
      Move editnodetype page form logic to a backend Perl script. · 45d79d63
      Russ Fish authored
             Note: new_node attributes have not yet been converted from
             names for osid's and imageid's to new-style integer indices.
           www/editnodetype.php3 - The reworked PHP page, including
             an EditNodeType function bridging to the script via XML.
           backend/{editnodetype,GNUmakefile}.in configure configure.in - New backend script,
             including wildcarding on %xmlfields table entries to handle dynamic attributes.
           sql/database-fill.sql - Add table_regex 'node_types' checking patterns.
      45d79d63
  2. 03 Oct, 2007 1 commit
    • Russ Fish's avatar
      Move editimageid page form logic to a backend Perl script. · 9dcf6297
      Russ Fish authored
           www/editimageid.php3 - The reworked PHP page.
           www/imageid_defs.php - Add an Experiment::EditImageid class method
                                  bridging to the script via XML.
           backend/{editimageid,GNUmakefile}.in configure configure.in - New backend script.
           db/Image.pm.in - Add an EditImageid worker class method for script arg checking.
           sql/database-fill.sql - Add to the table_regex 'images' checking patterns.
      9dcf6297
  3. 29 Sep, 2007 1 commit
    • Russ Fish's avatar
      Move editexp page form logic to a backend Perl script. · 187ec0f9
      Russ Fish authored
           www/editexp.php3 - The reworked PHP page.
           backend/{editexp,GNUmakefile}.in configure configure.in - New backend script.
           www/experiment_defs.php - Add an Experiment::EditExp class method
                                     bridging to the script via XML.
           db/Experiment.pm.in - Add an EditExp worker class method for script arg checking,
                                 And a missing description method.
           sql/database-fill.sql - Add to the table_regex 'experiments' checking patterns.
      187ec0f9
  4. 27 Sep, 2007 1 commit
  5. 26 Sep, 2007 1 commit
    • Russ Fish's avatar
      Move newgroup page form logic to a backend Perl script and methods. · 3164ca14
      Russ Fish authored
           www/newgroup.php3 - The reworked PHP page.
           www/newgroup_form.php3 - Removed, form merged into newgroup.php3 .
           www/group_defs.php - Add a Group::Create method bridging to the script via XML.
           www/showproject.php3 - Link to newgroup.php3, rather than newgroup_form.php3 .
           configure configure.in  - Add the newgroup backend script.
           backend/{newgroup,GNUmakefile}.in - Add the Perl script.
           db/Group.pm.in - Update the AccessCheck method to allow TB_PROJECT_LEADGROUP.
           sql/database-fill.sql - Add table_regex 'groups' checking patterns.
      3164ca14
  6. 19 Sep, 2007 1 commit
    • Russ Fish's avatar
      Move moduserinfo page form logic to a backend Perl script and methods. · 8965aad8
      Russ Fish authored
       GNUmakefile.in configure configure.in  - Add the testbed/backend directory.
       www/moduserinfo.php3 - The reworked PHP page.
       www/user_defs.php - Add a ModUserInfo method bridging to the script via XML,
           and remove the ChangeProfile method that is being replaced.
       backend/{moduserinfo,GNUmakefile}.in - Add the Perl script.
       db/User.pm.in - Add a ModUserInfo worker class method for script arg checking.
           Also SetUserInterface, SetWindowsPassword, and AccessCheck methods,
           and a copy of the escapeshellarg fn.
       sql/database-fill.sql - Add some to the table_regex 'users' checking patterns.
      
      Support stuff:
       account/tbacct.in - Update the UpdateWindowsPassword() function.
       db/libdb.pm.in - Add TBDB_USER_INTERFACE_EMULAB and TBDB_USER_INTERFACE_PLAB().
       tbsetup/libtestbed.pm.in - Add TB*EMAIL, TBMAIL_* vars (OPS, WWW, AUDIT).
      8965aad8
  7. 21 Aug, 2007 1 commit
    • Leigh B. Stoller's avatar
      Another round of widearea node hacking for CMU. These changes add · 99346dc0
      Leigh B. Stoller authored
      widearea reloading support.
      
      * New slot in the images table to store an access key which remote
        sites must provide in order to download an image (via https).
      
      * tmcd returns a different kind of ADDRESS field from doloadinfo.
        Instead of the multicast stuff, return a URL that points to boss'
        web server. The URL is of the form:
      
         https://www.myemulab.net/spewimage.php?imageid=10013&access_key=abcdef
      
        which as you can see is fully specified; the client does not need
        to know anything else.
      
      * New webpage and backend scripts appropriately called "spewimage"
        which also includes support for the http HEAD request (from wget) to
        avoid downloading images that are already on the node. I just
        learned about this HEAD request stuff today ... but otherwise these
        operate as expected, spewing the image if the access key is provided.
      
      * Changes to rc.frisbee to deal with remote loading. In addition to
        URL support, I also added support for simple paths, the intent being
        that we will probably distribute images offline (say, at night) so
        that when a node reboots it doesn't actually have to wait 60 minutes
        for an image to download. I have not added any server side support
        for this yet though. Maybe later this week.
      
      * Other bits and pieces and fixes to make this work.
      99346dc0
  8. 09 Aug, 2007 1 commit
  9. 08 Aug, 2007 1 commit
  10. 16 Jul, 2007 1 commit
  11. 09 Jul, 2007 1 commit
    • Leigh B. Stoller's avatar
      Checkpoint my cvs interface to the workbench. This first cut uses the · 8371fc79
      Leigh B. Stoller authored
      "rtag" directive to initiate template modify operations. So, to get started
      you do a checkout:
      
        cvs -d ops.emulab.net:/proj/$pid/templates/XXXXX/cvsrepo checkout XXXXX
      
      where XXXXX is the part of the guid (10000/1) before the slash. Might try
      and roll all templates into a single project wide repo at some point, to
      avoid the extraneous path stuff, but didn't want to worry that just yet.
      
      Okay, so have a checkout. You can work along the trunk, doing commits. To
      create a new template (a modify of the existing template), you tag the tree
      using rtag:
      
        cvs -d ops.emulab.net:/proj/$pid/templates/XXXXX/cvsrepo rtag mytag XXXXX
      
      A template modify is started at the end, and you should probably wait for
      email before continuing. Eventually I will need to add locking of some
      kind, but I have to do the modify in the background, or else I get deadlock
      cause cvs keeps the repo locked, and the modify also needs to access it.
      
      Each time you tag along the trunk, you get a modified template, which in
      the history diagram looks like:
      
        10000/1 --> 10000/2 --> 10000/3 ...
      
      If you want to branch, say at 10000/2 you can create a branch tag using rtag:
      
        cvs -d [cut] rtag -r T10000/2 -b mytag2 XXXXX
      
      You can also use your own tags for -r option, but I also create a TXXXXX/YY
      tag at each template modify, which is easy to remember.
      
      Then update your sandbox to the new branch, commit changes along that
      branch, and then later use rtag again to initiate a template modify
      operation:
      
        cvs update -r mytag2
        cvs commit ...
        cvs -d [cut] rtag -r mytag2 mytag3 XXXXX
      
      And now the history diagram looks like:
      
        10000/1 --> 10000/2 --> 10000/3 ...
                      |
                      |
                      -> 10000/4 ...
      
      You should be able to mix interaction via the web with interaction via the
      cvs interface. I've tested it, although not extensively.
      8371fc79
  12. 20 Jun, 2007 1 commit
  13. 01 May, 2007 1 commit
  14. 23 Apr, 2007 1 commit
  15. 25 Mar, 2007 1 commit
  16. 20 Mar, 2007 1 commit
  17. 15 Mar, 2007 1 commit
  18. 14 Mar, 2007 1 commit
  19. 13 Mar, 2007 1 commit
  20. 12 Mar, 2007 1 commit
  21. 09 Mar, 2007 1 commit
  22. 08 Mar, 2007 1 commit
  23. 07 Mar, 2007 1 commit
    • Leigh B. Stoller's avatar
      Changes for how we distribute the initial set of imageids and osids. · 3c1678d6
      Leigh B. Stoller authored
      * install/dump-descriptors <filename> will write out a set of insert
        statements for the images and os_info table, slightly munged. In
        fact, what I do is create temporary tables called temp_images and
        temp_os_info, clean them a bit, and then write out the insert
        statements to load them into new tables of the same name.
      
        There are some arrays at the top of this script that says what images and
        osids to write out.
      
      * install/load-descriptors <filename> takes the output of
        dump-descriptors, creates the two temporary tables and loads the
        data into them. Then it (optionally) updates those tables with the
        local indicies of elabman and the emulab-ops project and group.
      
        Then it computes an osidtoimageid table for all class='pc' types. On a
        new testbed this is a reasonable approach, in my opinion.
      
        Next it takes the contents of the two temp tables and moves them across
        to the actual tables.
      
      * install/descriptors.sql is the current data set which has everything
        contained in sql/database-fill-supplemental.sql and install/images/*
      3c1678d6
  24. 02 Mar, 2007 1 commit
    • David Johnson's avatar
      Adds rmcp support (for new wifi pcs) to the power command. For now, you · d31ab2bd
      David Johnson authored
      have to re-run the swig-wrappers target in tools/rmanage/GNUmakefile to
      generate the wrapper and perl module; this must of course be done when
      changes are made to the rmcp libs.
      
        * GNUmakefile.in, configure, configure.in: add tools/rmanage
        * tbsetup/GNUmakefile.in, tbsetup/power*.in: add rmcp to power command
        * tools/GNUmakefile.in: add rmanage
        * tools/rmanage/*.c,*.h: bugfixes, swig helper methods, etc.
        * tools/rmanage/rmcp.i: swig import control file
        * tools/rmanage/rmcp.pm,rmcp_wrap.c: rmcp wrapper/module generated by swig
      d31ab2bd
  25. 01 Mar, 2007 2 commits
  26. 26 Feb, 2007 1 commit
  27. 16 Feb, 2007 1 commit
    • Mike Hibler's avatar
      Hackery to make sure that Plab slices always have boss/ops in their hosts · 7d7c0999
      Mike Hibler authored
      file: we return info for boss/ops in the "hostnames" command, but only if
      the command would have otherwise returned something.
      
      This is because the default hosts file we distribute in the rootball already
      has boss/ops in it.  But if, during bootup, tmcd returns hostname info, that
      hosts file gets overwritten and boss/ops info gets lost.
      
      I could just grep out the info from the original hosts file and transfer it
      to the one we are building, but what do I grep for: "boss", "ops",
      "emulab.net"?  Don't really want to hardwire any of those in the client-side
      script.
      
      By returning this info via tmcd, I also don't have to modify the client-side
      and thus don't need to build a new rootball!
      7d7c0999
  28. 14 Feb, 2007 1 commit
  29. 13 Feb, 2007 1 commit
  30. 12 Feb, 2007 1 commit
    • Robert Ricci's avatar
      New front page text, for the first time in a few years. More clearly · b3e8a3e5
      Robert Ricci authored
      enumerates the different experimental environments we support. Most
      of the new text only gets displayed at Utah, since no one else has
      wireless nodes, etc. Other sites get some short generic text.
      
      New banner, plus other visual tweaks. The new banner is turned on via
      the new @FANCYBANNER@ autoconf variable. This is turned on for
      TBMAINSITE, but defaults to off for other sites. This is so that
      existing sites which already have their own versions of the old banner
      don't have to update them right away.
      
      Made the usage iframe a little less prominent, by darkening it, and
      making it ever so slightly transparent on browsers that support it.
      
      Some minor visual tweaks to the background and content area.
      
      Added specific IDs for the main menu subgroups so that if we want, we
      can style them differently.
      
      Man, IE is a pain in the ass.
      b3e8a3e5
  31. 18 Jan, 2007 1 commit
  32. 16 Jan, 2007 1 commit
  33. 27 Dec, 2006 1 commit
  34. 14 Dec, 2006 1 commit
  35. 06 Dec, 2006 1 commit
  36. 27 Nov, 2006 1 commit
  37. 27 Oct, 2006 1 commit
  38. 25 Oct, 2006 1 commit
    • Leigh B. Stoller's avatar
      Makefile Whacking! Try to deal with the problem caused by the delay · 7590f9c5
      Leigh B. Stoller authored
      between when something is installed and when post-install runs. Short
      of a global lock (which we probably need anyway someday), my solution
      is this. In your makefiles, add these variables before the line that
      has the include of $(TESTBED_SRCDIR)/GNUmakerules:
      
      	SETUID_BIN_SCRIPTS   =
      	SETUID_SBIN_SCRIPTS  =
      
      I have added three new rules to GNUmakerules that look like this:
      
      	$(addprefix $(SBINDIR)/, $(SETUID_SBIN_SCRIPTS)): $(SBINDIR)/%: %
      		echo "Installing (setuid) $<"
      		-mkdir -p $(INSTALL_SBINDIR)
      		$(SUDO) $(INSTALL) -o root -m 4755 $< $@
      
      Yep, your eyes ain't lying to you; use sudo to run the target so that
      install does the right thing (which is that the old file is not
      replaced until the new one has the proper attributes on it).
      
      Note that post-install is still needed for the initial install, but
      should no longer be needed for day to day installs since all that other
      stuff post-install does is mkdir/chmod on directories.
      7590f9c5
  39. 20 Oct, 2006 1 commit
    • Mike Hibler's avatar
      Wow, this should make me look important! · afa5e919
      Mike Hibler authored
      Two-day boondoggle to support "/scratch", an optional large, shared filesystem
      for users.  To do this, I needed to find all the instances where /proj is used
      and behave accordingly.  The boondoggle part was the decision to gather up all
      the hardwired instances of shared directory names ("/proj", "/users", etc.)
      so that they are set in a common place (via unexposed configure variables).
      This is a boondoggle because:
      
      1. I didn't change the client-side scripts.  They need a different mechanism
         (e.g., tmcd) to get the info, configure is the wrong way.
      
      2. Even if I had done #1 it is likely--no, certain--that something would
         fail if you tried to rename "/proj" to be "/mike".  These names are just
         too ingrained.
      
      3. We may not even use "/scratch" as it turns out.
      
      Note, I also didn't fix any of the .html documentation.  Anyway, it is done.
      To maintain my illusion in the future you should:
      
      1. Have perl scripts include "use libtestbed" and use the defined PROJROOT(),
         et.al. functions where possible.  If not possible, make sure they run
         through configure and use @PROJROOT_DIR@, etc.
      
      2. Use the configure method for python, C, php and other languages.
      
      3. There are perl (TBValidUserDir) and php (VALIDUSERPATH) functions which
         you should call to determine if an NS, template parameter, tarball or
         other file are in "an acceptable location."  Use these functions where
         possible.  They know about the optional "scratch" filesystem.  Note that
         the perl function is over-engineered to handles cases that don't occur
         in nature.
      afa5e919