- 02 Mar, 2007 1 commit
-
-
David Johnson authored
-
- 21 Feb, 2007 1 commit
-
-
Leigh B. Stoller authored
-
- 20 Feb, 2007 1 commit
-
-
Leigh B. Stoller authored
-
- 16 Feb, 2007 1 commit
-
-
Leigh B. Stoller authored
-
- 09 Jan, 2007 1 commit
-
-
Leigh B. Stoller authored
most of the rest of the tables in the system (still a few exceptions). Bound to be some bugs ...
-
- 20 Dec, 2006 1 commit
-
-
Leigh B. Stoller authored
uid_idx to the uid for compatability with unchanged code.
-
- 30 Nov, 2006 1 commit
-
-
Leigh B. Stoller authored
declared NOT NULL (not necessary in 5.0).
-
- 27 Nov, 2006 1 commit
-
-
Leigh B. Stoller authored
-
- 03 Nov, 2006 1 commit
-
-
Leigh B. Stoller authored
term archiving of firstclass objects like users, projects, and of course templates. * Projects, Users, and Groups are now uniquely identified inside the DB by a index value that will not be reused. If necessary, this could easily be a globally unique identifier, but without federation there is no reason to do that yet. * Currently, pid, gid, and uid still need to be locally unique until all of the changes are in place (which is going to take a fairly long time since the entire system operates in terms of those, except for the few places that I had to change to get the ball rolling). * We currently archive deleted users to the deleted_users table (their user_stats are kept forever since they are indexed by the new index column). Eventually do the same with projects (not sure about groups) but since we rarely if ever delete a project, there is no rush on this one. * At the same time, I have started a large reorg of the code, to move all of the user, group, project code into modules, both in php and perl, turning them into first class "objects" (as far as that goes in php and perl). Eventually, the number of query statements scattered around the code will be manageable, or so I hope. * Another related part of this reorg is to make it easier to move the new user/project/group code in the perl backend so that it can be made available via the xmlrpc interface (without duplication of the code).
-
- 26 Oct, 2006 1 commit
-
-
Kevin Atkinson authored
Make an attempt to discover what the error was before an swap-* was canceled, if any. Both the main error (canceled) and the other error are stored in the error table. To support this a new column in the error table is added "rank". The primary error has a rank 0 while the other error has a rank 1. Make an attempt to determine when an error is a "me too" error or the real cause of the problem. "Me too" errors are errors which are generally reported when the callie script determined that the caller script fails. The caller script should have reported the error, but in some cases the error didn't make it into the database. Thus if a "me too" is reported as the cause of a "swap-*" more info is needed to determine the true cause. When a "me too" error is reported it is followed by a "..." on it's own line. It is also recorded in the errors table under the new column "need_more_info". Add inferred column to the errors table. This is the same value as the inferred variable in tblog_find_error. Add revision column to errors table to make it easy to tell which algorithm was used to determine the error.
-
- 24 Oct, 2006 1 commit
-
-
Leigh B. Stoller authored
done in revision 4.74 above.
-
- 18 Oct, 2006 1 commit
-
-
Leigh B. Stoller authored
created.
-
- 12 Oct, 2006 2 commits
-
-
Leigh B. Stoller authored
-
Leigh B. Stoller authored
-
- 05 Oct, 2006 2 commits
-
-
Leigh B. Stoller authored
-
Leigh B. Stoller authored
commit logs in tbsetup for more info.
-
- 28 Sep, 2006 1 commit
-
-
Leigh B. Stoller authored
per-experiment user and password for the per-experiment DB.
-
- 26 Sep, 2006 1 commit
-
-
Leigh B. Stoller authored
we have a record of what nodes failed to respond during the synchronous parts of the start and stop experiment run. Data is stored for now, but not sure how it will be used later. The main goal is to avoid the problems we see with plab nodes where they do not respond, and start/stop run hang and fail.
-
- 25 Sep, 2006 2 commits
-
-
Leigh B. Stoller authored
was resquested by the user.
-
Leigh B. Stoller authored
single end of run archive tag.
-
- 20 Sep, 2006 1 commit
-
-
Kirk Webb authored
Add bwlimit column to widearea_nodeinfo table.
-
- 05 Sep, 2006 1 commit
-
-
Leigh B. Stoller authored
* Add XMLRPC interface for template swapin,stoprun,startrun,swapout and add the appropriate wrappers to the script_wrapper on ops. * Allow parameter descriptions in NS files. This is probably not in its final form since its a bit confusing as to what has priority; something in the NS file or a metadata item. Anyway, you can do this in your NS file: $ns define-template-parameter GUID "0/0" "The GUID to be analyzed" The rules are currently that the NS file description has priority and is copied to child templates, unless the user has modified a description via the web interface, in which case the NS file description is ignored. I know, sounds awful, but for the most part people are going to use the NS file anyway. * Add "clear" option when starting a new experiment run; the per experiment DB at the logholes are cleared. Note that this is *not* the default behaviour; you have to either check the checkbox on the web form or use the -c option to the script wrapper, or clear=yes if talking directly to the XMLRPC server. * Fix up how email is generated for template_swapin and template_create, so that Kevin can debug tblog/tbreport stuff, but also so that we maintain mail logs as before. I have made some improvements to libaudit so as to centralize the mail goo, and avoid duplicating all that stuff. * Minor fixes to the program agent so that the new environment strings are sent before the program agent exits and reloads them! * Other minor little things.
-
- 31 Aug, 2006 1 commit
-
-
Kirk Webb authored
Change types of latitude and longitude columns in widearea_nodeinfo to float (instead of float(6,5)) to fix problem with values getting adjusted improperly during insert. Apparently the definition of the float(n,m) type is non-standard, and has changed since sql 3.x. Regular float columns will do fine here.
-
- 25 Aug, 2006 3 commits
-
-
Leigh B. Stoller authored
-
Kevin Atkinson authored
More tbreport changes from Mike Kasick <mkasick@andrew.cmu.edu>: - Added tblog support to nscheck. - Added ns_parse_failed error to nscheck. - Added invocation column to report_errors to differentiate between assign runs in infeasible resource assignments.
-
Leigh B. Stoller authored
-
- 14 Aug, 2006 2 commits
-
-
Kevin Atkinson authored
Prep for Mike Kasick report code. Updated database schema and installed hooks for his code. Cleaned up how errors were handled in tblog(...). Allow SENDMAIL to be called before the path is untained in '-T' scripts. Other small changes.
-
Leigh B. Stoller authored
draft is that the user will at the end of an experiment run, log into one of his nodes and perform some analysis which is intended to be repeated at the end of the next run, and in future instantiations of the template. A new table called experiment_template_events holds the dynamic events for the template. Right now I am supporting just program events, but it will be easy to support arbitrary events later. As an absurd example: node6> /usr/local/bin/template_analyze ~/data_analyze arg arg ... The user is currently responsible for making sure the output goes into a file in the archive. I plan to make the template_analyze wrapper handle that automatically later, but for now what you really want is to invoke a script that encapsulates that, redirecting output to $ARCHIVE (this variable is installed in the environment template_analyze. The wrapper script will save the current time, and then run the program. If the program terminates with a zero exit status, it will ssh over to ops and invoke an xmlrpc routine to tell boss to add a program event to both the eventlist for the current instance, and to the template_eventlist for future instances. The time of the event is the relative start time that was saved above (remember, each experiment run replays the event stream from time zero). For the future, we want to allow this to be done on ops as well, but that will take more infrastructure, to run "program agents" on ops. It would be nice to install the ssl xmlrpc client side on our images so that we do not have to ssh to ops to invoke the client.
-
- 08 Aug, 2006 2 commits
-
-
Leigh B. Stoller authored
-
Leigh B. Stoller authored
associated with an experiment (or a project/group). This is to make it easier to generate the proper permission lists for db access.
-
- 03 Aug, 2006 1 commit
-
-
Leigh B. Stoller authored
into per-experiment databases on ops. Additional support for reconsituting those databases back into temporary databases on ops, for post processing. * This revision relies on the "snort" port (/usr/ports/security/snort) to read the pcap files and load them into a database. The schema is probably not ideal, but its better then nothing. See the file ops:/usr/local/share/examples/snort/create_mysql for the schema. * For simplicity, I have hooked into loghole, which already had all the code for downloading the trace data. I added some new methods to the XMLRPC server for loghole to use, to get the users DB password and the name of the per-experiment database. There is a new slot in the traces table that indicates that the trace should be snorted to its DB. In case you forgot, at the end of a run or when the instance is swapped out, loghole is run to download the trace data. * For reconsituting, there are lots of additions to opsdb_control and opsdb_control.proxy to create "temporary" databases and load them from a dump file that is stored in the archive. I've added a button to the Template Record page, inappropriately called "Analyze" since right now all it does is reconsitute the trace data into a DB on ops. Currently, the only indication of what has been done (the name of the DBs created on ops) is the log email that the user gets. A future project is tell the user this info in the web interface. * To turn on database capturing of trace data, do this in your NS file: set link0 ... $link0 trace $link0 trace_snaplen 128 $link0 trace_db 1 the increase in snaplen is optional, but a good idea if you want snort to undertand more then just ip headers. * Also some changes to the parser to allow plain experiments to take advantage of all this stuff. To simple get yourself a per-experiment DB, put this in your NS file: tb-set-dpdb 1 however, anytime you turn trace_db on for a link or lan, you automatically get a per-experiment DB. * To capture the trace data to the DB, you can run loghole by hand: loghole sync -s the -s option turns on the "post-process" phase of loghole.
-
- 27 Jul, 2006 1 commit
-
-
Leigh B. Stoller authored
of the most recent child (modification). Better then passing this info back in a print statement to be parsed.
-
- 20 Jul, 2006 2 commits
-
-
Leigh B. Stoller authored
the decimal point in decimal slots.
-
Leigh B. Stoller authored
* add an "active" flag to the template record, which will be used by the user to indicate what templates he wants listed (rather then the roots). Basically, the current working templates, rather then a big graph. But I never actually finished that cause it sorta morphed into: * Added a vis_graphs table to cache the last generated visualization rendering in the database so that we do not have to wait so long for: * Add new buttons to showexp and template_show pages, to display in the same page either the settings (current view), the NS file, or the visualization (along with zoom in/out buttons). And now I can go back to that "active" thing I mentioned up above ...
-
- 11 Jul, 2006 1 commit
-
-
Leigh B. Stoller authored
most of what is in the node_types table (and node_types_auxtypes). The goal is to make most of the type information free form key/value pairs so that type information is more extensible. This commit simply creates the table and populates it with initial info using init_nodeattrs.pl. I expect this script to change, but it can be rerun later so no big deal.
-
- 05 Jul, 2006 2 commits
-
-
Kevin Atkinson authored
Many changes to tblog code. Database update needed: 1) Added summary of failed nodes is os_setup. The cause of the error is now classified as "user" if it is only user images that failed and the user image failed on every pc of a particular type. Otherwise I leave the cause as "unknown" since it is really hard to tell what the real cause is. 2) Raised the confidence threshold for most errors so that they will appear on the top. 3) Added a special error when an experiment is canceled. The cause is "canceled" and testbed-ops won't see these errors. 4) Fixed a bug in assign_wrapper where it will incorrectly report "This experiment cannot be instantiated on this testbed..." when really the user canceled the swapin. 5) Fixed a bug where os_setup errors where being incorrectly reported as assign errors. This happens when os_setup fails for some reason and tbswap tries again, but the second time around there are not enough nodes. So the last error is coming from assign even though the true cause of the error is due to failed nodes. The fix for this involved added a new column to the log table, "attempt", which will be 1 for the first attempt and then incremented for each new attempt. tblog_find_error will then simply ignore any errors with "attempt > 1". 6) Also fixed a potential problem when there is an error during the cleanup phase by adding another column "cleanup". tblog_find_error will also ignore any errors with the cleanup bit set.
-
Leigh B. Stoller authored
revision 4.70.
-
- 03 Jul, 2006 1 commit
-
-
Mike Hibler authored
Actually, most of the changes here were just to generalize the "virtual interface" state in the DB. Other than the client-side scripts, there is very little specific here specific to tagged VLANs. In fact, you cannot specify "vlan" as a type yet as we haven't done the snmpit support for setting up the switches. For more info see bas:~mike/flux/doc/testbed-virtinterfaces.txt, which I will integrate into the knowledge base and the Emulab doc at some point.
-
- 26 Jun, 2006 1 commit
-
-
Robert Ricci authored
-
- 14 Jun, 2006 1 commit
-
-
Leigh B. Stoller authored
Each template has a datastore, which is really just a subdirectory that can be populated with files, and committed to the subversion archive. Note, the datastore os specific to the template itself. The Template Archive link on the Show Template page takes you to the subdirectory, which by convention I am calling "datastore". The directory actually lives in /proj/pid/exp/eid/TGUID-VERS ... but that path is printed out for you on the archive page. Anyway, put stuff in the datastore directory, and then commit the template archive so there is a tag associated with it. When an instance is created, a checkout of the datastore is placed in the experiment directory (/proj/pid/eid/exp/template_datastore). The current tag (from above) is stored with the instance so that we can later recreate the enviroment for the instance, say for rerun. Tarfiles and rpms in the datastore can be referenced as xxx://foo.rpm (in your NS file). tarfiles_setup transforms those when the instance is swapped in, sorta like it does other URLs, only it does not actually fetch them, just need to rewrite the paths so they reference datastore. The program agent gets another environment variable so you can refer to the datastore without hardwiring paths ($DATASTORE). Eventually I want to move the checkout someplace else, but it was easy to drop it into the experiment directory for now.
-