1. 26 Apr, 2004 1 commit
    • Mike Hibler's avatar
      Added config option DISABLE_EXPORTS_SETUP for sites without proper control · 56acaee5
      Mike Hibler authored
      of their file server (aero)
      
      Extend DISABLE_NAMED_SETUP: when set, we don't set a nodes hostname to
      <name>.<eid>.<pid>.<domain> since that won't resolve.  Just stick with
      pc<XXX>.<domain> in those cases.  The various sethostname* scripts are
      now .in so that they get preprocessed to check for the option.
      56acaee5
  2. 20 Apr, 2004 2 commits
    • Mike Hibler's avatar
      Improve the client-install. You can now do a "make client-install" from · 361ee691
      Mike Hibler authored
      the top level.  This will build all the necessary binaries and then install
      them.  This works on FBSD4 and RHL7.3.  It still doesn't work on FBSD5
      (newer compiler that no longer supports a style of use of _FUNCTION_ in the
      event lib) or RHL9 (event lib needs SSL lib which has a bad dependency
      on Kerberos).  Notes:
      
      - requires that elvin libraries be installed on nodes (they are) to build
        event agents, requires linuxthreads be installed on FBSD (it is now) to
        build imagezip (which is installed, but is not strictly necessary)
      
      - installed event-agents and other binaries are stripped
      
      - added a few missing files to the source tree for bsd (healthd.conf)
        and linux (healthd.conf, rc.local)
      
      - the only thing that doesn't get rebuilt in /usr/local/etc/emulab is
        healthd, I couldn't quickly find how it gets built
      
      - uses a scaled down version of libtb with no DB functions (since mysql
        isn't installed on nodes).  N.B. DO NOT DO A CLIENT INSTALL FROM YOUR
        REGULAR OBJ TREE OR ELSE YOU MAY WIND UP WITH A NEUTERED VERSION OF
        libtb.a!
      
      The build-as-well-as-install semantics are counter to the regular install
      targets, but this is what we gotta do for now.  Once the TB source builds
      under Linux and newer BSDs, we could undo this and just require that people
      do a regular "make" followed by "make client-install"  OTOH, there should
      be no reason to require installation of mysql and other server-side packages
      just to build clients (or make them sit through the compilation of assign),
      so maybe we will keep the client build special.
      361ee691
    • Mike Hibler's avatar
      Install elvind startup script · 0fa4ff23
      Mike Hibler authored
      0fa4ff23
  3. 17 Feb, 2004 1 commit
    • Leigh Stoller's avatar
      Medium size cleanup of the client side code. The main impetus behind · 069dc7d3
      Leigh Stoller authored
      this was to add soft reconfig support so that nodes could be
      reconfigured without having to reboot them. This appears to work, and
      has been tested with jails getting moved around. I've also tested the
      new code on the MFS, but still no testing has been done on PLAB nodes.
      
      The main change is that most of the code moved out of libsetup.pm, and
      was split into constituent rc scripts, each of which does its own
      thing, including cleaning up and preparing for making an image. Most
      of that central knowledge has been moved out into the scripts. Still more
      to do but this was a good start.
      069dc7d3
  4. 14 Feb, 2004 1 commit
  5. 20 Jan, 2004 1 commit
  6. 06 Oct, 2003 1 commit
    • Leigh Stoller's avatar
      * New libtmcc.pm module that encapsulates the tmcc interface. Most of the · 434a472a
      Leigh Stoller authored
        code that was in libsetup has moved into this library, and underwent a
        giant cleaning and pumping up. The interface from your typical perl
        script now looks like this:
      
        use libtmcc;
      
        if (tmcc(TMCCCMD_STATUS, "optional arguments", \@tmccresults) < 0) {
            warn("*** WARNING: Could not get status from server!\n");
            return -1;
        }
        foreach my $me (@tmccresults) {
      	print "bite $me";
        }
      
        The arguments and results are optional values. There is a fourth optional
        value that is a hash of config options (basically converted to command
        line switches passed to tmcc). For example, to set the timeout on an
        individual call, pass a fourth argument like:
      
      	("timeout" => 5)
      
        There is also a way to set global options so that all subsequent tmcc
        calls are affected:
      
      	configtmcc("timeout", 5);
      
        I'll probably clean this up a bit to avoid the direct strings.
      
        The result list is a list of strings. Since we are trending away from
        using tmcc to transfer large amounts of data, I think this is okay.
      
      * A new tmcc.pl which does little more than load libtmcc and use it.
        This will become the new tmcc, with the existing C version becoming a
        backend binary for it.
      
      * All of the perl scripts in tmcd have been changed to use the new
        library. I left the few uses of tmcc in shell scripts alone since they
        were of the simple variety (mostly "state" command).
      
      * And again, if you have read this far, you will learn why I bothered with
        all this. Well, the existing code was really bad and it was getting out
        of control. Sort of like a squid that was getting harder to control as
        its rotting tenticles slithered into more and more scripts. Anyway ...
      
        More important, my goal is to use the libtmcc library to add caching.  I
        have not worked out the details yet, but I am envisioning a configuration
        file, perhaps generated initially by tmcd, of all of the config
        values. If the library finds that file, it sucks the info out of the file
        instead of going to tmcd. Eventually, this config file would be generated
        as part of experiment swapping and stored in the DB, but thats a longer
        term project, and perhaps orthogonal (how we fill the cache is not as
        important as adding the ability to use a cache, right?).
      
        Note that certain operations (like "state" and "ready") are flagged by
        the library to always bypass the "cache".
      434a472a
  7. 24 Sep, 2003 1 commit
  8. 15 Aug, 2003 1 commit
  9. 04 Aug, 2003 1 commit
  10. 24 Jun, 2003 1 commit
  11. 17 Apr, 2003 1 commit
  12. 14 Mar, 2003 1 commit
  13. 07 Jan, 2003 1 commit
  14. 06 Jan, 2003 1 commit
  15. 18 Dec, 2002 1 commit
  16. 12 Nov, 2002 2 commits
    • Mac Newbold's avatar
      b789fe8f
    • Mac Newbold's avatar
      Add tbshutdown daemon. Started from rc.setup right after we tell the · ceac4889
      Mac Newbold authored
      testbed we've rebooted. Immediately daemonizes, then sets a signal handler
      and sleeps forever. When it gets a signal to quit (on shutdown, reboot or
      going single-user), it sends a state transition to SHUTDOWN to the
      testbed. It installs into /etc/testbed/ .
      
      Important note:
      If you're going to use this in an image that runs the NORMAL state machine
      (instead of NORMALv1, MINIMAL, etc.), the SHUTDOWN state is called
      REBOOTING in that mode. Just change the appropriate line in tbshutdown,
      but don't commit the change, since further use of the NORMAL mode in new
      images is deprecated. Alternatively, you could change the image over to
      NORMALv1 by renaming all REBOOTING tags to SHUTDOWN and changing REBOOTED
      to TBSETUP.
      ceac4889
  17. 26 Sep, 2002 1 commit
  18. 10 Sep, 2002 1 commit
  19. 27 Aug, 2002 1 commit
  20. 07 Jul, 2002 1 commit
  21. 06 Jun, 2002 1 commit
    • Robert Ricci's avatar
      Support for informing the testbed when we're getting shut down. · f4a25d22
      Robert Ricci authored
      This is done by creating a new directory, /etc/testbed/rc.d .
      This works just like /usr/local/etc/rc.d . Right now, it
      only has one script, which does a 'tmcc state REBOOTING' when
      called with the 'stop' argment.
      
      While I'm at it, checked in rc.conf - it contains some testbed
      specific things now, so it should be in CVS.
      f4a25d22
  22. 16 Apr, 2002 1 commit
  23. 03 Apr, 2002 1 commit
    • Leigh Stoller's avatar
      Minor reorg to work on the MFS filesystem. Basically, look for ismfs · 66db6a35
      Leigh Stoller authored
      file in /etc/testbed, and if there such a file, take a different path
      through the setup code that is a lot shorter (mounts, accounts,
      startupcmd).  All the other stuff is bypassed. There are no
      differences though between what you install on the MFS and what you
      install on a regular node.  Just run the mfs-install target instead,
      which creates the little ismfs file for you.
      66db6a35
  24. 05 Mar, 2002 1 commit
  25. 28 Feb, 2002 1 commit
  26. 24 Feb, 2002 1 commit
  27. 16 Jan, 2002 1 commit
  28. 10 Jan, 2002 2 commits
  29. 17 Dec, 2001 1 commit
  30. 01 Nov, 2001 2 commits
  31. 24 Sep, 2001 1 commit
    • Leigh Stoller's avatar
      The brave new world of client side configuration. Major highlights are · cedf74ed
      Leigh Stoller authored
      a "cleaner" separation of the OS independent and OS dependent parts.
      Lots of stuff moved to common libsetup.pm, shared by linux and
      freebsd. OS dependent stuff is in liblocsetup.pm in the subdirs.
      Other major change was to add "update" ability so that mounts and
      accounts can be updated on the fly, when directed to do so from boss.
      This is in support of shared experiments, so that as projects are
      added to the share list, the mounts and accounts can be updated
      without having to reboot.
      cedf74ed
  32. 29 Aug, 2001 1 commit
    • Robert Ricci's avatar
      Support for DHCP interface selection on FreeBSD. The script · 4694bd7e
      Robert Ricci authored
      /etc/testbed/nodetype uses the CPU speed (gleaned from /var/run/dmesg.boot
      by cpuspeed.awk) to distinguish between pc600s and pc850s. The start_if.*
      scripts use this to determine whether the node should attempt to dhcp
      on this interface.
      
      NOTE: When using the start_if.* scripts, NO interfaces should be set
      to DHCP in /etc/rc.conf - this will break things.
      4694bd7e
  33. 21 Aug, 2001 1 commit
    • Leigh Stoller's avatar
      Add findif program to map from a MAC address to its interface name. · c70850f5
      Leigh Stoller authored
      This program is now invoked from the setup script to determine which
      interface needs to be configured. Changed tmcd to return the MAC
      address from the DB in the ifconfig response. All this because the
      ordering of the interfaces is no longer consistent between linux and
      freebsd.
      c70850f5
  34. 30 Jul, 2001 2 commits
  35. 26 Jul, 2001 1 commit