- 06 Oct, 2003 1 commit
-
-
Leigh B. 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".
-
- 02 Oct, 2003 2 commits
-
-
Mike Hibler authored
Previously, if you accessed a phys node by its real IP address (155.101.132.N) from inside a jail, it used the default route going to the router and back. Now it will put it out directly on the control net. The main reason for this is so that minibed vnodes can reach their boss and ops nodes. Vnodes in mini don't have a default route that works, so we needed a way to get to boss/ops. Note that gated will remove this route when it starts up. Thus, vnodes will revert to using the default route to get to the real control net. On mainbed, this will still work (hop through the router as before). On mini, it won't work at all. Moral: don't use session routing and vnodes on mini.
-
Leigh B. Stoller authored
from the interfaces table of the parent node. This coincides with Rob's changes to stash the IP there, and arrange for it to go into DNS.
-
- 30 Sep, 2003 2 commits
-
-
Leigh B. Stoller authored
batch jobs will end! There were two problems; 1) The socket was 744, so mere users were not able to run tmcc. 2) libsetup was not even using the proxy socket cause it was never looking for it.
-
Leigh B. Stoller authored
-
- 25 Sep, 2003 2 commits
-
-
Leigh B. Stoller authored
-
Kirk Webb authored
killvserver() and getanyppid() which caused vnodesetup to fail when it shouldn't have.
-
- 24 Sep, 2003 4 commits
-
-
Leigh B. Stoller authored
-
Leigh B. Stoller authored
tmcd (which is bad, since tying up the tmcd threads blocks all nodes in the testbed). The old functionality is left in tmcd for now. On the server side, a new web page (www/spewrpmtar.php3) receives a request for a file, along with the nodeid (pcXXX) making the request, and the secret key that is generated for each new experiment and transfered to the node via tmcd. If the key matches, the operation is handed off to tbsetup/spewrpmtar.in which verifies that the file is in the list of rpm/tar files for that node, and then spits it out to stdout. The web page uses fpassthru() to send the file out to the client. The client is using wget, and is required to use https (the web page checks). At present, the external script is run as the creator of the experiment, and gid of the experiment. Perhaps this is not a good idea. In any event, the file must be in the list of rpm/tarfiles, either owned by the experiment creator or with a group of the experiment, and the file must reside in either /proj or /groups. I use the realpath() function to make sure there are no symlink tricks pointing to outside those filesystems. I use the standard NFS read goo to prevent transient mount problems that we all know and love.
-
Mike Hibler authored
-
Mike Hibler authored
-
- 23 Sep, 2003 4 commits
-
-
Kirk Webb authored
-
Kirk Webb authored
- regexp that matched the slice user wasn't working now that we're only looking for emulab_<exp_index>. Witholding this change from libplab.py for now until we push out a new tarball with this file
-
Leigh B. Stoller authored
allocated to an experiment.
-
Mike Hibler authored
Also change awk scripts to exit after printing something.
-
- 22 Sep, 2003 1 commit
-
-
Leigh B. Stoller authored
-
- 19 Sep, 2003 1 commit
-
-
Leigh B. Stoller authored
-
- 18 Sep, 2003 2 commits
-
-
Kirk Webb authored
first on plab nodes to fix up sudo.
-
Kirk Webb authored
* New GNUmakefile that produces the rootball - not linked in from the main TB build. - You can (almost) completely build the plab rootball just from the testbed source tree. The one wrinkle is that you must copy the Linux tmcc binary into the tmcd/plab object dir since there is no great way to build it automatically, and storing it in CVS is not a good idea since its likely to change. * Removed the suid RPM, no longer needed - added suidperl binary since I couldn't think of a better place to put it.
-
- 17 Sep, 2003 5 commits
-
-
Mike Hibler authored
We now use a script to install RPMs. (The only OS dependent thing was the path anyway)
-
Mike Hibler authored
-
Mike Hibler authored
(not to be confused with "tarballs") to download an RPM file.
-
Mike Hibler authored
-
Robert Ricci authored
like we do for jailed nodes.
-
- 16 Sep, 2003 2 commits
-
-
Shashi Guruprasad authored
Eliminated the second call. The output from the first time is now used to construct the file $BOOTDIR/tmcc.ifconfig
-
Leigh B. Stoller authored
* Put a hosts file in /opt/config, which gets copied to /etc/hosts on the IXP. * Put a resolv.conf in /opt/config, which gets copied to /etc on the IXP. * Add support for startcmd, which will override the default boot. * Do not squash root in the /opt export.
-
- 12 Sep, 2003 2 commits
-
-
Leigh B. Stoller authored
-
Leigh B. Stoller authored
-
- 11 Sep, 2003 1 commit
-
-
Leigh B. Stoller authored
the types table yesterday, and it is hardwired here. Yuck.
-
- 09 Sep, 2003 1 commit
-
-
Mike Hibler authored
to avoid hup-me-and-i-will-screw-ya mountd/NFS bug. Use new -t option (use tmcd) in jails/plab
-
- 04 Sep, 2003 3 commits
-
-
Leigh B. Stoller authored
address of the interface instead of the dest&mask, which was bogus anyway, and now wrong in the presence of variable netmasks for the destination.
-
Leigh B. Stoller authored
-
Leigh B. Stoller authored
changes; Print a warning when the DB slots are null, and return standard 255.255.255.0. This is for the transition phase. Also add version 12 modification to routerconfig; return the "src" from the virt_routes table, so that the client side can figure out what interface the route is associated with. There are associated changes in libsetup to ifconfig,routerconfig,tunnelconfig.
-
- 03 Sep, 2003 6 commits
-
-
Leigh B. Stoller authored
code (asking tmcd twice for routes, ifconfig, etc). Shashi will fix later.
-
Mike Hibler authored
-
Mike Hibler authored
-
Mike Hibler authored
-
Mike Hibler authored
We have some evidence that some application is "chmod 600"-ing /dev/console and, in the process, /dev/null. Remove the code to create vn devices, bootvnodes does this now.
-
Mike Hibler authored
routing (-V option to vnodesetup). I was going to do this just for jails that used gated, but there is no efficient way to do this (I don't want to make a redundent "tmcc routing" call for every jail just for the very rare case they are using gated). Since it is the Right Thing To Do anyway, I'll just go for it now while we only have one external user. There is a possibility of unexpected consequences on mini, but I'll cross that bridge when I get to it (or more likely, when Leigh gets to it :-)
-
- 02 Sep, 2003 1 commit
-
-
Leigh B. Stoller authored
that part out since it is not finished/tested.
-