[git pull request] kvm-autotest: sync with upstream Autotest SVN

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Now that kvm-autotest was included on upstream Autotest SVN
repository[1], the following pull request is a proposal to sync
kvm-autotest.git Autotest SVN trunk, while keeping the kvm-autotest.git
history.

I have set up a git-svn mirror of the Autotest SVN repository[2], and
the upstream Autotest changes included on this pull request come from
this mirror.

The changes available on my branch do the following, to try to make the
resulting history bisectable:

1. Apply some trivial changes to avoid conflicts when merging with
   Autotest SVN
2. Merge with Autotest SVN revision 3185 (revision immediately before
   kvm-autotest was included)
3. Apply a patch series from Lucas, that converts the kvm-autotest
   code to the code that went to Autotest SVN, including a rename
   of tests/kvm_runtest_2 to tests/kvm.
4. Merge with Autotest SVN trunk (revision 3189)


The result is a tree that is almost the same that is on upstream
Autotest SVN, except for a few differences that need to be either
removed from kvm-autotest, or sent upstream. The remaining differences
are the following:

$ git diff origin/master github/to-kvm-autotest-merge1 | diffstat
 KVM_REGRESSION_README   |    4 ++
 bin/base_sysinfo.py     |    2 -
 bin/simple_ssh.py       |   70 ++++++++++++++++++++++++++++++++++++++++++++++++
 tests/dbench/control.60 |   20 +++++++++++++
 4 files changed, 95 insertions(+), 1 deletion(-)

('origin' is Autotest SVN, 'github' is the tree where the merge results
are available)


References:

 [1] http://autotest.kernel.org/changeset/3187
 [2] http://github.com/ehabkost/autotest/tree/master
     The mirror is synchronized every 30 minutes.

----
The following changes since commit 2a0a76645f72dcbd495ea37b566d017796eca24e:
  Uri Lublin (1):
        kvm_tests.cfg: adding some missing iso image md5sum values

are available in the git repository at:

  git://github.com/ehabkost/autotest.git to-kvm-autotest-merge1

Eduardo Habkost (5):
      Delete kvm_runtest_old test
      Sync "from site_host import SiteHost" code with upstream autotest
      Merge autotest SVN revision 3185
      Add Dror Russo to author lists
      Merge branch 'master' of git://github.com/ehabkost/autotest into kvm-merge2

Lucas Meneghel Rodrigues (9):
      Moving from kvm_log to the upstream logging system.
      Fixing exception raising to be compliant with the autotest coding standard.
      Fixing docstrings and lines of code wider than 80 characters.
      Sanitizing strings before passing them to the logging system.
      Trimming trailing whitespaces from all files on the source directory
      Correcting some imports leftover from a badly done git rebase
      Changing kvm_runtest_2 to kvm.
      Fixing import style on make_html_report
      Final adjustments on the KVM test

jadmanski (57):
      Add support to the autotest parser for updating RUNNING test results with new reason values so long as tests write out multiple status messages.
      When trying to connect to a host with ParamikoHost, if all of the keys we have fail to authenticate we need to raise an exception, immediately.
      Update test_importer to drop synch_type
      Fixed a bug in an error message in Autotest. Looks like a chunk of code that got moved around and no longer makes sense now that it's out of context.
      When exhausting paramiko's buffers after the remote process exists, just keep reading from them until they're empty. The recv_ready functions will return "False" even when there's still data in the buffer that we could read without blocking.
      Touch the status.log file when a server job starts, so that once a job run is started we can be sure that a file exists. This is for the benefit of the parser, since it uses "does a status log exists" as the criteria for determining if a job was/is running in a directory.
      Add some code to the server job and autotest classes to save off a list of directories that need to be copied in order to retrieve client log results. It uses file locking to sequence updates to this file since multi-machine jobs will be sharing the same log file.
      Always close the communication channel in paramiko, even when the operation should be implicitly closed when the remote process exits.
      Don't remove the "started" file from autotestd_monitor. We use this to indicate that autotestd has been started; autotestd_monitor starting doesn't change that fact, so we should leave it around.
      Add support for running autoserv with a "--collect-crashinfo" flag that tells autotest to run a job that includes ONLY the crashinfo collection. This will pull back crashinfo, and if run against a results directory from a crashed job it will also pull back any client results that it can find on the remote host.
      Add support for explicitly removing tempdirs created on a host, and modify the server-side sysinfo to use this to clean up the sysinfo directory immediately.
      Fix up the server-side sysinfo collection (again) to make sure all temp directories and installs on the host machine are removed. Since the install->run collection->remove pattern seems to be pretty common, I extracted it out into a dectorator.
      Add a network_destabilizing flag that tests can set to disable NETWORK warnings.
      Fix up the sysinfo install-and-run decorator try-finally structure to work reliably in the case that the installation or temp dir creation fails; it should only try to clean up objects that were allocated, or else it'll run into UnboundLocalError messages.
      Convert the parser unit tests over to use the more portable dumbdbm as the backing store. Unfortunately requires converting over all the existing results stores to use the dumbdbm format.
      The enabling and disabling of warning messages unfortunately seems to be rather racy. Unfortunately, since warnings and test status messages are being pulled asynchronously from two different sources there can be a skew of a few seconds between when the event actually occurs and when the server thinks it does.
      Fix up a problem when flushing the WARN logs on the server side. If a flush happens just before an END log, then the WARNs will get logged at the same level as the END which will really confuse the parser.
      Add a (global) timeout to rsync so that if it sits idle (i.e. no I/O) for more than 30 minutes then the command will timeout and fail.
      When the parser encounters a job-level status update that isn't starting or ending a job, never insert a record. Just update the status of the current job. Otherwise one job ends up looking like multiple ones.
      The parser should update the RUNNING status and reason when the latest message is at least as bad as the current status, not just when it's worse.
      If any of the autotestd_monitor child processes die, the monitor itself should also die, or else the server may never notice it has stopped sending it client output and will sit around waiting for the client to finish forever. If one of the tail processes dies the monitor is effecively dead, so it should just terminate itself and give the server a chance to restart it.
      When we close a paramiko host object, make sure we close off the underlying connection object as well.
      If a reboot fails, the exception should always float upwards; a failed reboot is generally catastrophic and should by default be treated as an exception.
      Fix up a "bug" in ParamikoHost where reading std* streams after closing the remote channel can end up returning while data is still arriving, resulting in truncated std*.
      The paramiko.Transport.connect method doesn't seem to support any equivalent to openssh's ConnectTimeout option. This can lead to some situations where a connection potentially hangs (forever?) during the initial SSH handshake, or during authentication.
      There might still be a potential hang when exhausing the ssh std* buffers, so make certain there's a timeout on the underlying socket just in case.
      Fix up the parser to interpret reasons in a more logical and consistent manner. Currently we generate reasons for RUNNING test entries by looking at the reasons from any "bad" status messages, but this still doesn't affect the final status message. So a test that ended up with WARN status because of a warning would still just see a "completed successfully" reason, which is less than helpful. This changes the behaviour to allow the bad RUNNING reason to override the final reason if it's worse.
      When a subcommand is started, clear out the return code. Otherwise if you re-use a subcommand object after the first is completed the poll() and wait() methods will be broken.
      Fix a bug in the parser when dealing with test labels. The final reparse drops the existing test entries and replaces them with new ones, so that leaves behind a bunch of orphaned labels in the database and basically kills all the lables you've added. So instead we add some code to move the existing labels over the new entries that replace them (making a best effort to match up "new" and "old" entries).
      When we "touch" status.log make sure we don't damage any already existing log.
      Only write a job keyval out if there isn't already a keyval with "job_started" in it. This way we don't stomp all over any existing values when doing secondary follow-up jobs like crashinfo collection.
      This is a hack, but right now I can't see any other way of working around this when the negotiation gets wedged. Even closing the underlying socket doesn't unhang the connection, and if it's hung then transport.join is going to hang, too, once we call transport.close. So just stub it out with a no-op.
      Drop the code that's removing status.log at the start of a job.
      Fix a race condition in server_job._update_collected_logs_list where we need to make sure we flush the write to disk before releasing the lock on the file.
      Change the file logger to open the server.log file in append mode instead of write mode.
      New (and much more complex) version of the collect rpm -qa patch. This adds a list_all function to the package management library that supports both rpm and dpkg, and instead of logging a list of all installed packages on every test we instead log this on every reboot and then just log the added and removed packages during each test.
      Change the client, babysitter, scheduler logging configs to append to the file log instead of overwriting, like in the server config.
      Add a missing import of error to oprofile.
      Because we all love another layer of try-finally indentation...make sure the server-side sysinfo collection cleans up the Host objects it use. It can be expensive to leave these objects lying around, waiting for the end-of-job cleanup to finalize them. We know they're not needed anymore after these lines, so why not clean them up?
      When we try to start a new session on a machine that's shutting down, it's possible for the process to hang until the machine comes back up (unless the keepalive triggers, but that takes a few minutes). If that occurs, we try re-creating a new transport before giving up.
      Sometimes this open_session call throws an EOFError if the other end of the connection goes away (i.e. during a shutdown of the remote machine). An SSHException would be nicer, but if EOFError is what it throws then we need to catch it too...
      Special-case the crashinfo-only mode of running a job to only run if there are existing uncollected logs. Otherwise just exit and do nothing.
      Change the autotest.run implementation to only automatically add profilers to client runs on non-background runs. We can't stop the profilers and collect the results anyway since control of the run is left to the code launching the background client, and these runs are generally internal processes that shouldn't be profiled anyway.
      Use a set instead of a list to store currently running reasons, and sort it when combining multiple entries into a string. This eliminates duplicates and forces a "standard" ordering.
      Fix up a possible race in the profiler startup; have the server wait for the profiler on the client to be ready before signalling that it should start. Otherwise you can run into situations where the server goes ahead and tries to wait for profiler.finished before the profiler is even ready to start.
      Add a foreign key from tests->jobs. Requires modifying tests.job_idx to be of the same data type as jobs.job_idx.
      Summary: Remove 'client global keyval' retrieving, as it is a no-op most of the time
      Delete some of the autotest unit tests wrapped around the server/autotest.py log retrieval code that Lucas recently deleted.
      Collect per-iteration sysinfo into the test sysinfo directory, not the job sysinfo directory.
      Encode args as args, not dargs as args.
      A new version of the fix to handle race conditions between console warning logging and status warning disabling messages. Instead of using a clearly still-unreliable sleep, just hold up the logging of WARN messages on the server side until we start seeing new messages from after the warning coming in.
      Fix up the logging of unexpected client aborts to flush all the current client log buffers first so that the final client end message is logged after all the client logs.
      Change the server-side profilers to use their own host objects, instead of trying to re-use existing ones. Using existing ones was making them unreliable since we avoided using Host objects with "normal" autotest installs associated with them to avoid conflicts, so sometimes your hosts would get used, sometimes not, and it's non-obvious from a user point of view. So instead we change the profilers to look and what hostnames are in use and then create their own Host objects.
      Clean up _get_autodir in autotest.py a bit. Adds in some more logging to make it easier to see what decisions it's making, and changes the final fallback to checking /usr/local/autotest and /home/autotest to just look for the directories, rather than an installed client. Only checking for existing clients at those locations is inconsistent with the other checks this call does.
      Break the crashinfo up into a bunch of separate, documented functions.
      Add a slightly friendlier repr for remote hosts. Since these objects are often passed in as parameters to tests the repr will often show up in test keyvals (where we log all params).
      Fix up a print that was incorrectly converted into a logging call.

lmr (2):
      Adding kvm test
      Fixing kvm test authorship issue

mbligh (128):
      Removing the dead status.
      Script was failing in cleanup() method when a hugetlbfs was already mounted, as self.dir was not initialized.
      Moved server.hosts.ssh_host.PermissionDeniedError into client.common_lib.error.AutoservSsshPermissionDeniedError and updated users. Changed parsing of 'Permission denied.' SSH error to work in verbose mode too. Changed AbstractSSHHost.ssh_ping() to not convert the permission denied error to a AutoservRunError and instead let it propagate to the callers (it is inherited from AutoservRunError anyways).
      Added frontend/migrations/027_fix_innodb.py and tko/migrations/021_fix_innodb.py to perform ALTER TABLE ... ENGINE=InnoDB on tables missing it.
      Synch count is now returned by the job stat RPC.
      Post-release procedures for autotest, with site-specific hooks
      Set content type of all files in /results directory to text/plain. They are all text files anyway.
      Detect openSUSE/SLES systems more reliably.
      Fix bug in parse_path where results from multi-machine synchronous jobs are ignored.
      Modify read_keyval and write_keyval to allow '.' (periods/decimal points) in the key names (allow python timestamps in perfkeys).
      Multiple machines job results can't be parsed correctly due to missing keyval. Run a simple multiple machine job like this.
      fix patch for netperf
      boottool.get_entries is terribly ineffective: it calls boottool.pl to get all kernel indexes and then calls it again for each index to get details. This means the bootloader configuration is parsed n+1 times (where n is a number of items in bootloader config).
      Add a new get_title_for_kernel method to boottool. It returns corresponding title for the passed vmlinuz path.
      Updated the hardcoded cli host protections with the ones currently available in client.common_lib.host_protections.
      More reliable kernel version detection when using RPM
      Fix a race condition when two SIGINT's come in at once attempting to close something that was already closed before it was set to None.
      Make debug print out which server we're talking to
      As atest's --parse option is supposed to output easily parsable data, it is better not to print 'No results' when no results is returned. Instead, prints nothing.
      make client/bin/autotestd_monitor executable
      Allow a vendor-specific kernel RPM installation and add a SUSE-specific one.
      Add autotest module to execute CTCS (Cerberus Test Control Syste)
      Adding the protection flag to host create
      clean up whitespace in mirror
      Hi
      Removed code redundancy by moving the drop_caches/run_once/postprocess_iteration calls into a function. Possibly fixed bugs because of postprocess_iteration not being called after run_once iterations from the code handling "test_length" test time argument.
      Getting rid of the socket timeout tunes, except for the kernel uploads.  Now that the servers are more stable, they seem unnecessary and created some spurious failures.
      Summary: Adding dma_memtest test module
      Run migrations in release, too
      Check and return ABORT state in poll_job_results().
      Add repairing to the list of dead states.
      Added sysinfo support to log pre and post iteration (currently it logs the contents of /proc/schedstat). Added client.common_lib.test hooks to call pre and post iteration. Used the hooks in client.bin.test.runtest() for client tests. Refactored server.test and added wrappers for the pre/post iteration logging and used them on the new pre/post iteration hooks.
      Add migration to add a proper default value to hosts invalid column. Since we rely on this default we should explicitly set it.
      Updated mirror/mirror script: - removed builtin support for kernel patches as this is already handled by kernelextract tool (and it wasn't used by mirror anyways) - removed "queuedir" command line argument and updated it to use server.frontend API for creating the jobs on the server - grouped jobs by control-file/kernel-config tuple to avoid scheduling a job per machine when not necessary
      Strip from the kernel version the '::<timestamp>' if present when logging reboot END GOOD. This fixes grouping tests by source kernel versions in the results database.
      Moved warmup() call from execute() to _exec() before calling on execute() thus fixing an issue of filtering arguments sent to execute() based on what run_once/execute accepts but ignoring the fact that warmup() may have needed some other arguments.
      Drop the '-autotest' suffix from the kernel version in version_1 status.log based kernel version similar to what version_0 parser does when reading kernel version from sysinfo uname_-r.
      job_unittest.py wont be making no mo noise.
      New version of the patch, I moved the logging config code right before all the results directory checking, also made autoserv handle the flag -N appropriately. While I was there, I found some bugs exposed by the collect logs feature recently introduced when using autoserv with the flag -N. So I think it's better to have everything fixed on one patch.
      Summary: Add a new VirtualPartition class to client/bin/partition.py to handle block device emulation trough image files.
      Add write_pid to common code Call write_pid from scheduler and babysitter
      Summary: Fixing further breakage found using the -N flag of autoserv
      Add --host-label option to query_results so that hosts    that are only in that label are displayed
      Add warning to host_protections to inform developers of the consequences of changing the enum that defines these levels.
      Move monitor_db_babysitter to using utils.run to start monitor_db with environment variable for monitor_db's logs. Add option to monitor_db.py to check if AUTOTEST_SCHEDULER_LOG_NAME is set if it is use that name for logs, otherwise use the default.
      Wrapped every repair phase in a try/except to consume errors in repair and run a verify after that should instead detect problems if still present and raise exception accordingly. Removed the verify ran at the end of all repairs in server_job since that should not be needed now.
      Added support in client.bin.base_job.__init__ to copy kernel boot parameters of the running kernel and have it by default copy "console=" parameters. Updated site specific code.
      Remove duplicate kernel boot parameters given to boottool.add_kernel.
      Add an optional warning in case the system doesn't shutdown in a timely manner.
      Fix a comment.
      Fixing a bug reported by Martin when running autoserv with the -N flag.
      Add an additional migration-ish step for django to the release script.
      Move clean up functions into seperate file/classes    Add 24hour clean up run    Add django_session clean up
      Add a 10 second timeout to the conmux-attach call, if we cannot connect in that amount of time something is wrong. Last week the conmux was in a specific state where it was accepting connections then not handling them at all. As a result conmux-attach hung for almost two hours in some jobs.
      New prefix for file logging
      This gives us fixed width, and saves some space.
      Several of out attributes (like bootnum and boot_times) that are standard test_attributes are signifigantly longer than 100 char. So extended value column to 1K.
      Package upkeep    Remove old custom packages from repos (Age can be set)    Add parallel upload to packager    Before uploading check if we can write to the repo and if there is enough diskspace
      Move server import only into the upload section as a temporary fix for being able to use packages.py on clients until upload funcationality can be put into a server side package lib
      Change tests to have a default for the invalid field
      Move update checksum out of upload_pkg_parallel this shouldn't be done in parallel. Risk: Low Visibility: High (Can cause package checksum corruption in certain cases)
      Add a workaround to a bug where machines are not rebooting sometimes This sends a -HUP to init (pid 1) which causes it to reparse its config and nothing else.
      Give the warning and the workaround a chance to happen by default.
      Fix a typo in the join_bg_jobs function.
      Moved the part of initialize() that needs to execute after setup() to be started from start().
      Raise an AutotestError instead of the default. We end up with a pretty verbose mess in the logs before this change.
      Don't specify an absolute path in os.path.join, otherwise it wont work as we expect it to:
      Add systemtap as a dependency. Some tests may want to use tapsets for profiling or debugging, so it's worth adding it here and not as a test.
      Build oprofile in parallel, it takes a while and I got tired of waiting when debugging it.
      Update oprofile to version 0.9.4
      Add dejagnu as a dependency
      This is the second CL relating to a re-implementation of how constraints on keyvals are evaluated.  The code has been moved into the base_test class itself. This required some changes to the old tests that had evaluated the constraints themselves.
      host.reboot() will now take an optional reboot command.  The reboot test in soft reboot mode will explicitly pass in 'reboot' as the cmd that is used to reboot a machine.
      Add systemtap test
      Changes to make frontend.py work with atomic groups
      Make a couple of errant files executable
      Add a method to get the number of logical cores per cpu socket on a machine.
      Added support to AbstractSSHHost.get_file() to not try to preserve the orginal file permissions. Used this from crashinfo copying code to not copy /var/log/messasges with 0600 privileges and such (which is common on Linux distributions) and then not be able to read it in the frontend. Also changed the way we copy the client control file wrapper to not preserve the original permissions of the file.
      Make sure that in a repair operation autotest runs a verify on DO_NOT_REPAIR protection level hosts.
      Modified import_site_class() to not wrap baseclass with a local dummy class when the site specific class does not exist (thus hopefully fixing an issue in SVN about not being able to run server side tests because sysinfo cannot be pickle dumped), instead have import_site_class return the baseclass when the site specific class does not exist. Also, have it perform automatically the mixin of baseclass and the site specific class when the site specific one is not inherited already from baseclass and removed the mixin that was done in some of the users.
      Added server_job.set_test_tag() function (similar to the one in client.bin.job) to specify a default tag to use for run_test() runs.
      Cleanup - don't use list object to return "list" of jobs that can only return one thing.
      Document job.results_platform_map
      Fixed the default command value to make utils.CmdResult().__repr__() work.
      We now store the failures due to constraints and dont raise an exception until after postprocess.
      Do the Python < 2.4 switcheroo before importing modules that may not exist in older pythons.
      Summary: Make the prefix format for the log files generated by tests be coherent with the other logs
      Call out to site_monitor_db: site_init_monitor_db
      Re-factor the option parsing following a suggestion from Greg. Eliminate the <topic>.parse altogether.
      Summary - A couple of LTP module bugfixes
      Moved to the new logging.
      Added utils.get_relative_path() to compute the path of an absolute path as relative to a given directory path and used it when creating the test results sysinfo/current_reboot symlink to create a relative symlink that would still be valid when relocated.
      Break out filesystem setup and cleanup code.  Add a utility function for running a test that requires multiple partitions.
      Summary: If autotest is not running with the --continue flag, delete the state file transparently
      partition is in the autotest tree so the import should reflect that.
      bad import.
      fixed imports.
      If kicking off one test doesn't work, don't stop, just carry on with the others
      Kill duplicate import of traceback
      Add post-parse site hooks (parse -P to trigger, default = off) Make scheduler call tko/parse with -P
      Fix scheduler unittest for parser's new -P flag
      Consolidate control files to one central one. Make ktest_nightly use arg passsing instead of creating a custom file
      Fix args splitting when we don't have any
      Summary: Simple conversion of one print statement on base_sysinfo
      Summary: Converting the remaining print statements on job.py to logging statements
      Exposed an interface for adding before_iteration_hooks and after_iteration_hooks.  These are stored in a list in test object and are run before and after iteration runs.
      Remove the get_system_nodes() method from base_utils as it does not work in all cases. Moreover the numa_nodes() method instead gets accurate information about the numa nodes on the machine and should be used instead of get_system_nodes()
      Always display the details if an ACL is specified.
      Fix argument split for conmux so that we support ' " and spaces for arguments
      Adds a -G to autoserv to be able to set host_group_name in the group keyvals file that it writes.  Useful only if someone has asked autoserv to run the parser itself.
      Modify the way we handle profile_only to now be a boolean that does not modify iterations. If profile_only is set to True run all iterations with profiles enabled. If profile_only is not False, run iterations and then run one profile run. Change the way profilers are stored by adding them to a iteration.X sub directory.
      Ignore spurious repair failures that shouldn't be there, as well as spurious verify failures ;-(
      Replaced os.environ['HOME'] usage with os.path.expanduser() to not fail when HOME is not defined.
      When test_importer is run in a tree checked out from SVN, it crashes on SVN control*.svn-base files. Let it ignore files containing .svn.
      On SUSE, the kernel is split into several RPMs (vmlinuz + most basic modules, common modules, extra modules, and optionally third-party kernel module packages).
      Moved partition.py to base_partition.py and created a partition.py that  imports all symbols of base_partition.py and those of site_partition.py  if such a file exists (it actually uses execfile() on these files so the names are created in partition.py and it's possible to properly unittest and stub them). Modified partition_unittest.py to test base_partition.py and also partition.py (ie after it applies overriding, to make sure that the overrides do not break functionality of the non site specific code).
      Added a few more words to the constrain failure reason.
      Hi Team,
      Send the job dir, not the individual tests, to site_parse
      Disable POWER_FAILURE class warnings during a hard reset, since this sort of event is expected.
      Make sure we do an explicit is_authenticated check, since it's not always guaranteed that the get_exception code will actually have an error associated with it.
      Properly handle failures in frontend.py. At the moment, we return job results as good when we fail to get a valid RPC from the server. Ooops. Make sure we won't take a null set as valid results
      Modify reboot timeout to be 5 minutes longer than the warning
      tar to a temp path and atomically rename if successful, else delete
      Add the ability to ignore tests, and to catch failures in LTP from logs
      Basic stats data for the machine always used to be logged per test, and is extremely useful for debugging. At some point, this got broken, put it back ...
      Fixed profiling for tests that do not define a self.iteration (which is most tests that override execute()).
      Always use the host_group_name even if a sysinfo/hostname file exists when the keyvals hostname is a list of machines.

showard (113):
      a) Reduce the number of instances of DBObject classes created for the same row    in the database by caching existing live instances using weakref's.
      Support opening drilldown results in a new tab/window from spreadsheet and table views.  When drilling down in spreadsheet and table views, either into a group or into test details for a single test, the user can open the resulting page in a new tab/window by control-clicking.  I included what I believe is the proper code to support middle-clicking as well, but I could not see any browser support.  I tried the GWT hosted mode browser and FF2 on linux, and FF3 and windows.  I changed the cell selection combo to shift-click (I don't think anyone uses that feature anyway :-/).
      chdir when starting monitor_db to avoid issues such as "shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory." if monitor_db is started with an odd nfs pwd.
      Add the concept of an Atomic Group to the scheduler and database.
      As discussed on the mailing list, we implemented logging with a single root logger and logging configurations per entry points. The entry points affected are:
      Ensure RepairTasks aren't associated with the queue entries that spawned them, so that if the QE is aborted during repair the repair task will continue running (and just leave the QE alone from then on).
      Fix the AtomicGroup name display in the admin interface.
      -support command-click for macs, since control-click is overridden on macs to get context menu behavior.  i forgot about that. -fix a style issue i forgot to include in the original patch.
      fix some unused code eclipse warnings that had been disabled but should've been enabled
      columnNames must always be a mutable List.  this was breaking querying after doing a drilldown or loading a page from history.
      Fix doctests that are "failing" due to being overly pedantic.
      Fix model_logic so that smart_get will perform the lookup by -either- id or the primary key (normally name) automagically.
      Add missing atomic_groups.invalid migration.
      generic JSON-RPC implementation using JSONP (JSON with Padding).  the central part of this change consists of: * refactored JsonRpcProxy to extract all XmlHttpRequest-specific logic into a new XhrHttpRequest subclass, and made JsonRpcProxy abstract * introduced new PaddedJsonRpcProxy subclass of XmlHttpRequest that uses JSONP instead of XHR * added new handle_jsonp_rpc_request() method to rpc_handler.py, to handle JSONP requests on the server side
      Summary: Make autotest's packaging system to use logging infrastructure.
      Couple fixes for Lucas and Rodrigo's logging changes * fix client.bin.job_unittest * fix a couple prints that slipped into monitor_db during the review of the logging patch
      * rewrite CreateJobView.cloneJob() to call selectObjects() once instead of selectObject() within a loop.  The former is much more efficient, as it postpones UI updates until after all selections have been made.  This makes job cloning much quicker for large jobs and should help avoid the slow script warning. * simplify the code by using a JSONArrayList
      Change killing %d to %s
      Fix log viewers sizing in FF3.  Apparently elements with overflow: auto (or scroll or hidden) don't do percentage widths properly in FF3.  So to workaround it, shrink the scrolling div to zero width, let the parent assume the correct size, then dynamically grab that width in pixels and set the scroller to that exact width.  Also listen for and respond to window resize events, since we're setting explicit widths.
      Convert a missed self.logger call to use the logging module.
      Only show "Status log" and "Debug logs" links when a host queue entry's execution_subdir is nonempty.  With the way things work now, execution_subdir should be nonempty iff results of some kind have been generated.  This simplified the surrounding logic a bit.
      Add more infrastructure for common (between AFE & TKO) site-specific features, and various UI widget enhancements.
      Add a check for AUTOTEST_SCHEDULER_LOG_DIR    Update monitor_db_babysitter to use subcommand and define the log path for the scheduler
      Add support for atomic groups to the frontend RPC interface.
      Ensure exception information from monitor_db goes to logs. * in EmailManager.log_exception(), change sys.stderr.write() to logging.exception(), ensuring output goes through the logging infrastructure (as it should) * add an extra top-level main() wrapper in monitor_db to catch any escaping exceptions and log them before reraising.
      use FQDN when retrieving log information
      Fix get_info_for_clone() when the HQE has no atomic_group.
      Allow the RPC interface to create jobs in an atomic group without requiring any meta_hosts or hosts to be specified.
      Fix monitor_db.DBObject.save() to handle None values as NULL properly.
      Ensure one-time-hosts get unlocked when created.
      * extract code for displaying graphs and managing graph drilldowns from *Frontend classes (which also manage the graph setup UI) into separate Plot classes (a Plot class and two subclasses, MetricsPlot and MachineQualHistogram).  eventually, these plot classes will be usable as embedded widgets in other pages. * made some changes to graphing_utils.py to support the new design, including encoding drilldown information with JSONEncoder * extract GraphingDialog class to a generic, top-level SimpleDialog class, so that it'll be usable from embedded widgets without including all the frontend code * fix a bug in FilterSelector.isEmpty() (it would always return false previously) * fix a bug in TableView where no column would be sorted on in some cases
      Allow display of the message of the day in tko as well as afe. refactored as common code in CommonClassFactory.
      Update management so that it adds permissions for 'atomicgroup'
      Change connect_timeout default from 30 seconds to 5 minutes    this will give overloaded drones a time to process the ssh connection instead of crashing the scheduler
      Add information collecting method so we can see what state the system was in when the scheduler stalls. uptime, iostat, ps auxwww, mysqladmin showprocesslist
      move escape_user_sql() to the manager class, where it better belongs, make it not static, since it doesn't need to be and we need to override it, and override it in TestViewManager to specify the table whenever test_idx is used (otherwise it can be an ambiguous reference when test_attributes is joined)
      Provide the ability to Re-validate results that had been previously marked as invalid.
      Index the test_id field on test_labels_tests.  When people query with an exclusion of multiple labels, MySQL will want to use this index to join from tests to test_labels_tests on the test_idx.
      Prevent creating jobs via the frontend directly on hosts in an atomic group if the atomic group was not requested for that job.
      Prevent jobs from being created via the RPC interface that will be impossible to schedule due to labels that conflict with the supplied atomic group (or lack thereof) being specified as meta_hosts or dependencies.
      extract code for generated autoserv command lines to a common place, including support for -l and -u params, and make verify, repair and cleanup tasks pass those params.  this should make failed repairs include the right user and job name when parsed into tko.
      Fix monitor_db_unittest, broken by previous change to refactor cleanup code.  Two main things here: * 24hr cleanup was running upon object construction, which meant it was running inadvertently during unit testing.  Fixed this with the usual trick of moving that action from the constructor to an initialize() function, which gets called separately in monitor_db and which the unit test avoids. * one of the scheduler unit tests was actually testing cleanup code; change that to call the newly located function.  this test should maybe be moved to a separate unit test file for the monitor_db_cleanup module, but I just want to get things working again for now.
      Add atomicgroup support to the command line interface.
      Add support to the scheduler to run autoserv --collect_crashinfo after a job finishes or is aborted. * added new state "Gathering" for when we're running collect_crashinfo and copying logs to the results repository * added new GatherLogsTask to the scheduler to perform these two tasks, and made it get run either after a job finishes or after a job is aborted.  this task shares a lot with FinalReparseTask, so extracted common code into a new PostJobTask. * made changes to scheduler/drone code to support generic monitoring and recovery of processes via pidfiles, since we need to be able to recover the collect_crashinfo processes too.  this will also made the scheduler recover parse processes instead of just killing them as it does now, which is nice. * changed abort logic significantly.  since we now need to put aborted jobs through the gathering and parsing stages, but then know to put them into "aborted" afterwards, we can't depend on the old path of abort -> aborting -> aborted statuses.  instead, we need to add an "aborted" flag to the HQE DB table and use that.  this actually makes things generally cleaner in my opinion -- for one,  we can get rid of the "Abort" and "Aborting" statuses altogether.  added a migration to add this flag, edited model and relevant logic appropriately, including changing how job statuses are reported for aborted entries.
      Explicitly check for empty results when looking for old tests.  Otherwise we'll generate invalid SQL in the subsequent query.
      fix a simple bug in the parser -- in one code path, old_tests never gets bound, but it gets referenced later anyway
      Fix two bugs introduced in previous change to add collect_crashinfo support. * Some late modifications to the previous change prevented the FInalReparseTask from running when a job was aborted.  Fixed that by allowing AgentTasks to really ignore an abort (which the PostJobTasks do). * The new abort logic caused hosts to not get cleaned up after an abort if the job was running and had the "reboot_after = Never" option set.  This may or may not be preferable to users, but it's a change from the previous logic, so I'm changing it back to always run cleanup when a job is aborted.
      Make RepairTask write job_queued and job_finished keyvals so they can be parsed into TKO when failed repair results are parsed.
      Last few changes necessary to make first embeddable graphs work * add EmbeddedTkoClient GWT entry point + associated scripts, GWT XML, launch configuration, apache config * added EmbeddedTkoClientTest.html, a simple demonstration/test of using embedded widgets * modify TabView to no longer be a Composite, but instead have a getWidget element.  this allows us to defer any DOM manipulation to initialize() and therefore avoid executing it at all in the embedded case.  the introduction of code to TabView.initialize() (it was previous abstract) required adding a super.initalize() call to *all* subclasses, and there are a lot, hence the large number of files in this change. * added Plot.getNativeProxy(), generating a native JS object that acts as a proxy to the GWT Plot object * extend JsonRpcProxy to allow use of PaddedJsonRpcProxys * remove debug prints from PaddedJsonRpcProxy * fix a little bug where a return statement was missing from Plot.showDrilldown()
      globalInitialize() starts a timer and every 10 minutes requests the motd again and sets the string in the dom.
      Changed get_hosts() rpc call to return the acls to which the hosts belong as well.  This info is then used to display the ACLS to which a host belongs in the HostDetailView tab in AFE.
      Fixed a unittest that previous change of mine broke.
      fix Agent.abort() when it's called before the agent has started (in that case, it should do nothing -- but the logic was making it basically ignore the abort).  this should fix jobs being aborting in the "starting" phase (a phase that lasts one cycle before "running" starts).
      Support multiple embedded graph widgets on the same page.  This required two changes to avoid collisions with shared global resources: * Make each plot generate a unique drilldown callback name for itself.  These need to be unique because they all get stuck into  as global methods.  This also required passing the callback name to the server and having the server use it when generating callback code. * Make the server generate a unique name for the image map, when generating HTML to return to the client.  These image maps all sit in the document and thus must have unique names.  It generates the map name from the passed-in drilldown name.
      add @Override tag to overriding method in CommonClassFactory.java
      Make autoserv --collect_crashinfo only run when Autoserv actually failed (exit status nonzero) or was aborted.  I was being lazy and always running it, but it seems that introduced very annoying latency into job runs.
      Here is a patch, which extends the autotest system with recurring job executions. When you create a new recurring job, you can specify: - start time (on server) - loop count (0 means infinite): how many times it will executed - loop period: how many time will wait between two execution
      Fixed indenting multiline quoted content that uses triple quotes (" or ') in the control file generation RPC. Added unittest case to catch this issue in the future.
      Monkey patch the logging module to make debugging poorly written logging statements easier.
      Update CLI to allow scheduling jobs against labels
      Add support for submitting a job into an atomic group to the CLI.
      Add missing mock god check playback and fix the test.
      Parameter "plot_info" should've been "plot_type" -- was a mistake.
      increase timeout for JSON-P queries to 60s
      Fix CLI unittests to call check_playback in all cases, not just when run_cmd is used.
      Fix create_embedded_plot() to use the *Plot classes.  This fixes the "Link to this graph" feature in TKO.
      Make mock.py fail fast when an unexpected call occurs by throwing an exception.
      Export CSV support for spreadsheet view. * new Django view, handle_csv(), with a new URLconf, /new_tko/server/csv/ * new module csv_encoder with logic to encode the results of an RPC call into CSV format * logic in csv_encoder to convert results of get_status_counts() (or get_latest_tests()) into CSV, when called from spreadsheet view * added optional "Export to CSV" link to TableActionsPanel, and made SpreadsheetView use it with a handler to call the /csv/ entry point with the current query info
      Improved embedded graphing sample -- use more generic, more interesting queries.
      Change Agent.abort() again.  This time, it runs through its queue of AgentTasks, aborting them until it reaches one that ignores the abort (or exhausts the queue). With the previous logic, we might have an Agent with a GatherLogsTasks that should ignore the abort, but if the Agent got aborted before starting it would never run the task.  I hope I've really got it right this time.
      When the user performs a whole-table action in TKO spreadsheet view, make sure we obey the "show only latest test per cell" checkbox.  This isn't an issue for actions on particular cells, because we already use the test IDs since the cells are single-test cells.  But whole table actions use a different code path.
      Updated the 'view=' URL parameter to match new view ID in frontend.
      Fixed FindBugs warnings: changed some inner classes to static inner classes.
      Pick hosts out of an atomic group in order rather than randomly so that a consistent set of hosts is used when possible.
      CSV support for TKO table view. * make RpcDataSource record the last RPC call params, since that's much easier than reconstructing it as I was doing for SpreadsheetVIew * make TableDecorator support an Export CSV link, and make TableView use it * add onExportCsv to Table View, plus some minor refactorings there that happened along the way * generalize CSV code from SpreadsheetView and extract to TkoUtils * add new CsvEncoder classes for table view * change logic to decide which CsvEncoder to use --  simply dispatching off of method name isn't good enough, since both spreadsheet and table views use get_status_counts * add new unit tests for the three kinds of table view
      Fixed compiler warnings: unused imports and unread field.
      Only run crashinfo collection when Autoserv exited due to some signal -- not just when it failed.  Also make a minor fixup to some logging during process recovery.
      Escape user SQL for attribute filtering.  Not sure why this wasn't failing before or when it started failing, but this definitely fixes it.
      Added ability to clone a job on specific hosts.
      Add the ability to filter based on test labels.
      Add host attributes to AFE.  Nothing actually uses them; they're purely for users and scripts to use.  Initial implementation is minimal - new migration, new model, RPCs to set and delete, and inclusion of attributes in get_hosts() results.  No CLI or frontend support.
      Represent a group of machines with either the atomic group label name, if a specific label was used, or the atomic group name in the results database when parsing.
      Remove csv_encoder_unittest from the default set that is run as it required Django to be installed and most users and test developers will never have that installed.
      Add the ability for users to add test attributes.  Non-user-created attributes (added by the parser) are still immutable. * add boolean column user_created to TestAttribute to keep track of which are user created, so we can preserve immutability * add id primary key field to test attributes.  Django requires this and we've been squeezing by without it, but we can't anymore. * declare some PK fields AutoFields in TKO models, as they should be.  this didn't matter before but does now that we have a TKO unit test, since these models determine how the test DB gets created. * add set_test_attribute RPC to set/delete attributes * modify get_detailed_test_views() to use the new populate_relationships() method to gather attributes and labels much more efficiently * add rpc_interface_unittest, a unit test for the TKO rpc interface.  TKO was previously completely untested, so this is the first unit test of any kind for it.  since the doctests on AFE turned out to be quite unpopular, I'm using the unittest framework this time.  this required some changes to AFE testing code. * various fixes to model_logic to account for assumptions we were previously making that aren't true in TKO (mostly about PK fields being named "id").
      Add job option for whether or not to parse failed repair results as part of a job, with a default value in global_config.  Since the number of options associated with a job is getting out of hand, I packaged them up into a dict in the RPC entry point and passed them around that way from then on.
      Make migration manager support migration modules with just strings "UP_SQL" and/or "DOWN_SQL".  It seems to be a very common case that we just write SQL strings for up and down and then have some boilerplate migrate_up() and migrate_down() methods.  Now we won't need those methods in that case.  Of course, if you include those methods, they'll still get called instead.
      Add job maximum runtime, a new per-job timeout that counts time since the job actually started. * added started_on field to host_queue_entries, so that we could actually compute this timeout * added max_runtime_hrs to jobs, with default in global config, and added option to create_job() RPC * added the usual controls to AFE and the CLI for the new job option * added new max runtime timeout method to * added migration to add new fields and set a safe default max runtime for existing jobs
      Add an extra check for existence of Autoserv results in GatherLogsTask -- in certain recovery cases this can be false, previously leading to an exception.
      Fix recurring run code to reflect recent changes to rpc_utils.create_new_job().
      rpc_utils.extra_job_filters() should always return a dict
      Update debug_scheduler logging config to use INFO instead of debug. this stops us from seeing pickle data printed out in the scheduler logs by default
      Add ability to reverify a host from the Host List.
      Added ability to clone jobs on all failed hosts.
      Fixed FindBugs warning: unchecked cast
      Change color of message of the day in AFE and TKO.
      populate_relationships() wasn't working for IterationAttributes and IterationResults in TKO, because they don't have primary key columns.  the "right" fix would be to simply add primary key ID columns.  unfortunately, that can take forever since it's a sort of intensive operation and iteration_result is a big table.  so this change reworks how populate_relationships() works.  it now handles many-to-one relationships separately, using a single query over the related table that doesn't depend on a primary key.  also extended the unit test to cover this case, which required some annoying changes to account for this shortcoming of these tables.
      Sort hosts when choosing them for use in an atomic group and when actually assigning pending ones to run a job.
      Added ability to lock/unlock machines from the AFE Host List view
      Failing to distinguish between Types of Filters in CommonPanel.handleHistoryArguments().
      Added DOCTYPE declarations to HTML files. Using HTML 5 because the GWT history support iframe requires the id to start with an underscore.
      Explcitly catch SystemExit so we don't stack trace when we exit with sys.exit
      Make recovered tasks correctly handle being aborted before being started.  Unlike other tasks, recovered tasks are effectively "started" as soon as they're created, since they're recovering a previously started task.  So implement that properly so that when they're aborted, they do all the necessary killing and cleanup stuff.
      Add ability to lock/unlock a host from the AFE View Host tab.
      Allow all TestView fields to be displayed in cell contents in Spreadsheet View.
      Change get_num_logical_cores to get_num_logical_cpus_per_socket, some minor brush-up
      fix JobManager.get_status_counts, which was returning incorrect counts in some cases when jobs were aborted.  the problem was that it's possible for a complete entry to have aborted set or not and have the same full status, which was violating an assumption of the method.
      Check for multiple platforms on a machine when modifying labels.
      add a debug mode to migrations.  this is pretty handy for debugging complex migrations.
      Allow hosts to be reverified from the AFE Host Details view.
      Creating a job from the command line now inherits reboot before/after settings specified in the AFE User Preferences.
      make the readonly connection fallback to the regular Django connection when running in the scheduer.  this is really important, because otherwise the readonly connection is not autocommit and bad, bad things could happen, though i'm not sure exactly what existing problems there might have been.  we used to do this only for testing, but since we do it in another context here, i renamed the method to be more generic and appropriate.
      make AgentTasksTest inherit from BaseSchedulerTest.  it didn't used to, since it didn't have any DB dependencies, but the recent introduction of SpecialTasks has changed that, so we need AgentTasksTest to setup the DB now like everything else.  It doesn't increase the unit test runtime too drastically.
      Have the scheduler check for and sometimes cleanup various DB inconsistencies. * in periodic cleanup, check for relationships to invalidated objects, and remove them (and send notification email) * in 24hr cleanup, check for hosts with != 1 platform, and send notification email Also changed AFE models to have labels remove associations with tests (as dependencies) when deleted (invalidated).

 apache/conf/all-directives                         |    1 +
 apache/conf/embedded-tko-directives                |    1 +
 apache/conf/tko-directives                         |    1 +
 cli/acl.py                                         |   48 +-
 cli/action_common.py                               |   78 +-
 cli/action_common_unittest.py                      |   76 +-
 cli/atest.py                                       |    1 +
 cli/atest_unittest.py                              |   17 +-
 cli/atomicgroup.py                                 |  149 ++
 cli/atomicgroup_unittest.py                        |  102 ++
 cli/cli_mock.py                                    |    2 +
 cli/host.py                                        |   67 +-
 cli/host_unittest.py                               |   15 +-
 cli/job.py                                         |  112 +-
 cli/job_unittest.py                                |  120 ++-
 cli/label.py                                       |   30 +-
 cli/query_results                                  |   14 +
 cli/rpc.py                                         |    7 +-
 cli/test.py                                        |    8 +-
 cli/topic_common.py                                |  179 ++-
 cli/topic_common_unittest.py                       |  477 +++---
 cli/user.py                                        |   14 +-
 client/bin/autotestd_monitor                       |    6 +-
 client/bin/base_partition.py                       |  950 +++++++++++
 client/bin/base_sysinfo.py                         |  132 ++-
 client/bin/base_utils.py                           |    9 +-
 client/bin/boottool.py                             |  123 +-
 client/bin/fsdev_disks.py                          |    4 +-
 client/bin/harness_standalone.py                   |    6 +-
 client/bin/job.py                                  |  143 ++-
 client/bin/job_unittest.py                         |   40 +-
 client/bin/kernel.py                               |  153 ++-
 client/bin/package.py                              |   18 +
 client/bin/partition.py                            |  728 +--------
 client/bin/partition_unittest.py                   |   39 +-
 client/bin/test.py                                 |    4 +-
 client/bin/test_config.py                          |   81 +-
 client/common_lib/__init__.py                      |    2 +-
 client/common_lib/barrier.py                       |  104 +-
 client/common_lib/error.py                         |    5 +
 client/common_lib/global_config.py                 |    6 +-
 client/common_lib/host_protections.py              |   11 +-
 client/common_lib/packages.py                      |  214 ++-
 client/common_lib/pidfile.py                       |    9 +-
 client/common_lib/profiler_manager.py              |   14 +
 client/common_lib/test.py                          |  254 ++-
 client/common_lib/test_unittest.py                 |  100 +-
 client/common_lib/test_utils/mock.py               |   12 +-
 client/common_lib/utils.py                         |  133 ++-
 client/common_lib/utils_unittest.py                |   26 +
 client/debug.ini                                   |    6 -
 client/debug_client.ini                            |   32 +
 client/deps/dejagnu/common.py                      |    8 +
 client/deps/dejagnu/dejagnu-1.4.4.tar.bz2          |  Bin 0 -> 868057 bytes
 client/deps/dejagnu/dejagnu.py                     |   22 +
 client/deps/systemtap/common.py                    |    8 +
 client/deps/systemtap/elfutils-0.140.tar.bz2       |  Bin 0 -> 1469129 bytes
 client/deps/systemtap/systemtap-0.9.5.tar.gz       |  Bin 0 -> 1267885 bytes
 client/deps/systemtap/systemtap.py                 |   32 +
 client/profilers/oprofile/oprofile-0.9.3.tar.bz2   |  Bin 617875 -> 0 bytes
 client/profilers/oprofile/oprofile-0.9.4.tar.bz2   |  Bin 0 -> 896285 bytes
 client/profilers/oprofile/oprofile.py              |   90 +-
 client/setup_modules.py                            |   45 +-
 client/setup_modules_unittest.py                   |   72 +
 client/tests/cerberus/cerberus.py                  |   95 ++
 client/tests/cerberus/control                      |   16 +
 client/tests/cerberus/ctcs-1.3.1pre1.tar.bz2       |  Bin 0 -> 115392 bytes
 client/tests/cerberus/fix-ctcs-build.patch         |   87 +
 client/tests/dma_memtest/control                   |   19 +
 client/tests/dma_memtest/dma_memtest.py            |  161 ++
 .../tests/{kvm_runtest_2 => kvm}/BEFORE_YOU_START  |    0
 client/tests/kvm/calc_md5sum_1m.py                 |   21 +
 client/tests/{kvm_runtest_2 => kvm}/control        |   50 +-
 client/tests/{kvm_runtest_2 => kvm}/fix_cdkeys.py  |   11 +-
 .../{kvm_runtest_2/kvm_runtest_2.py => kvm/kvm.py} |   74 +-
 client/tests/{kvm_runtest_2 => kvm}/kvm_config.py  |  369 +++--
 .../{kvm_runtest_2 => kvm}/kvm_guest_wizard.py     |   78 +-
 client/tests/{kvm_runtest_2 => kvm}/kvm_install.py |  132 +-
 .../{kvm_runtest_2 => kvm}/kvm_preprocessing.py    |  179 +-
 .../{kvm_runtest_2 => kvm}/kvm_tests.cfg.sample    |    0
 client/tests/kvm/kvm_tests.py                      |  468 ++++++
 client/tests/kvm/kvm_utils.py                      |  983 +++++++++++
 client/tests/{kvm_runtest_2 => kvm}/kvm_vm.py      |  448 +++--
 client/tests/kvm/make_html_report.py               | 1736 ++++++++++++++++++++
 client/tests/{kvm_runtest_2 => kvm}/ppm_utils.py   |  144 +-
 .../tests/{kvm_runtest_2 => kvm}/scan_results.py   |    5 +
 client/tests/{kvm_runtest_2 => kvm}/stepeditor.py  |  264 ++-
 client/tests/{kvm_runtest_2 => kvm}/stepmaker.py   |  103 +-
 .../steps/Belenix-0.7.1.steps                      |    0
 .../{kvm_runtest_2 => kvm}/steps/CentOS5-64.steps  |    0
 .../{kvm_runtest_2 => kvm}/steps/DSL-4.2.5.steps   |    0
 .../{kvm_runtest_2 => kvm}/steps/Fedora-8-64.steps |    0
 .../steps/Fedora-8-i386.steps                      |    0
 .../{kvm_runtest_2 => kvm}/steps/Fedora-9-64.steps |    0
 .../steps/Fedora-9-i386.steps                      |    0
 .../steps/FreeSBIE-2.0.1.steps                     |    0
 .../steps/Mandriva-One-2007-32.steps               |    0
 .../steps/NetBSD-1.6.2.steps                       |    0
 .../steps/OpenBSD-4.1-32.steps                     |    0
 .../steps/RHEL-3.9-i386.steps                      |    0
 .../steps/RHEL-3.9-x86_64.steps                    |    0
 .../steps/RHEL-4.7-i386.steps                      |    0
 .../steps/RHEL-4.7-x86_64.steps                    |    0
 .../steps/RHEL-5.3-i386.steps                      |    0
 .../steps/RHEL-5.3-x86_64.steps                    |    0
 .../{kvm_runtest_2 => kvm}/steps/Slax-6.0.7.steps  |    0
 .../steps/Ubuntu-6.10-32.steps                     |    0
 .../steps/Ubuntu-8.04-32-setupssh.steps            |    0
 .../steps/Ubuntu-8.04-32.steps                     |    0
 .../steps/Ubuntu-8.04-server-32.steps              |    0
 .../steps/Ubuntu-8.10-64.steps                     |    0
 .../steps/Ubuntu-8.10-server-32-gcc.steps          |    0
 .../steps/Ubuntu-8.10-server-32.steps              |    0
 .../steps/Win-Vista-32.steps                       |    0
 .../steps/Win-Vista-64.steps                       |    0
 .../steps/Win2000-32-setupssh.steps                |    0
 .../{kvm_runtest_2 => kvm}/steps/Win2000-32.steps  |    0
 .../steps/Win2003-32-setupssh.steps                |    0
 .../{kvm_runtest_2 => kvm}/steps/Win2003-32.steps  |    0
 .../{kvm_runtest_2 => kvm}/steps/Win2003-64.steps  |    0
 .../steps/Win2008-32-setupssh.steps                |    0
 .../steps/Win2008-32-setuptelnet.steps             |    0
 .../{kvm_runtest_2 => kvm}/steps/Win2008-32.steps  |    0
 .../{kvm_runtest_2 => kvm}/steps/Win2008-64.steps  |    0
 .../steps/WinXP-32-setupssh.steps                  |    0
 .../{kvm_runtest_2 => kvm}/steps/WinXP-32.steps    |    0
 .../{kvm_runtest_2 => kvm}/steps/WinXP-64.steps    |    0
 .../{kvm_runtest_2 => kvm}/steps/memtest86+.steps  |    0
 .../steps/openSUSE-11.0-32.steps                   |    0
 .../steps/openSUSE-11.1-32-and-64.steps            |    0
 client/tests/kvm_runtest_2/calc_md5sum_1m.py       |   16 -
 client/tests/kvm_runtest_2/kvm_log.py              |   60 -
 client/tests/kvm_runtest_2/kvm_tests.py            |  396 -----
 client/tests/kvm_runtest_2/kvm_utils.py            |  775 ---------
 client/tests/kvm_runtest_2/make_html_report.py     | 1730 -------------------
 client/tests/kvm_runtest_old/control               |   16 -
 client/tests/kvm_runtest_old/fix_cdkeys.py         |   72 -
 client/tests/kvm_runtest_old/html_report.py        | 1689 -------------------
 client/tests/kvm_runtest_old/kvm.cfg               |    4 -
 client/tests/kvm_runtest_old/kvm.py                |  219 ---
 client/tests/kvm_runtest_old/kvm_cleanup/control   |    4 -
 .../kvm_runtest_old/kvm_cleanup/kvm_cleanup.py     |   25 -
 .../Belenix-0.7.1/Belenix-0.7.1.ini                |    5 -
 .../Belenix-0.7.1/Belenix-0.7.1.steps              |  142 --
 .../kvm_guest_install/CentOS5-64/CentOS5-64.ini    |    6 -
 .../kvm_guest_install/CentOS5-64/CentOS5-64.steps  |  316 ----
 .../kvm_guest_install/DSL-4.2.5/DSL-4.2.5.ini      |    6 -
 .../kvm_guest_install/DSL-4.2.5/DSL-4.2.5.steps    |  388 -----
 .../kvm_guest_install/Fedora-8-64/Fedora-8-64.ini  |    5 -
 .../Fedora-8-64/Fedora-8-64.steps                  |  242 ---
 .../Fedora-8-i386/Fedora-8-i386.ini                |    6 -
 .../Fedora-8-i386/Fedora-8-i386.steps              |  239 ---
 .../kvm_guest_install/Fedora-9-64/Fedora-9-64.ini  |    5 -
 .../Fedora-9-64/Fedora-9-64.steps                  |  203 ---
 .../Fedora-9-i386/Fedora-9-i386.ini                |    5 -
 .../Fedora-9-i386/Fedora-9-i386.steps              |  204 ---
 .../FreeSBIE-2.0.1/FreeSBIE-2.0.1.ini              |    5 -
 .../FreeSBIE-2.0.1/FreeSBIE-2.0.1.steps            |  153 --
 .../Mandriva-One-2007-32/Mandriva-One-2007-32.ini  |    5 -
 .../Mandriva-One-2007-32.steps                     |  368 -----
 .../NetBSD-1.6.2/NetBSD-1.6.2.ini                  |    5 -
 .../NetBSD-1.6.2/NetBSD-1.6.2.steps                |  182 --
 .../OpenBSD-4.1-32/OpenBSD-4.1-32.ini              |    5 -
 .../OpenBSD-4.1-32/OpenBSD-4.1-32.steps            |  256 ---
 .../Ubuntu-6.10-32/Ubuntu-6.10-32.ini              |    5 -
 .../Ubuntu-6.10-32/Ubuntu-6.10-32.steps            |  126 --
 .../Ubuntu-8.04-server-32.ini                      |    5 -
 .../Ubuntu-8.04-server-32.steps                    |  210 ---
 .../Ubuntu-8.10-64/Ubuntu-8.10-64.ini              |    5 -
 .../Ubuntu-8.10-64/Ubuntu-8.10-64.steps            |  165 --
 .../Ubuntu-8.10-server-32.ini                      |    5 -
 .../Ubuntu-8.10-server-32.steps                    |  196 ---
 .../Win-Vista-32/Win-Vista-32.ini                  |    5 -
 .../Win-Vista-32/Win-Vista-32.steps                |  112 --
 .../Win-Vista-64/Win-Vista-64.ini                  |    5 -
 .../Win-Vista-64/Win-Vista-64.steps                |  113 --
 .../kvm_guest_install/Win2000-32/Win2000-32.ini    |    5 -
 .../kvm_guest_install/Win2000-32/Win2000-32.steps  |   81 -
 .../kvm_guest_install/Win2003-32/Win2003-32.ini    |    5 -
 .../kvm_guest_install/Win2003-32/Win2003-32.steps  |   72 -
 .../kvm_guest_install/Win2003-64/Win2003-64.ini    |    5 -
 .../kvm_guest_install/Win2003-64/Win2003-64.steps  |  116 --
 .../kvm_guest_install/Win2008-32/Win2008-32.ini    |    5 -
 .../kvm_guest_install/Win2008-32/Win2008-32.steps  |  109 --
 .../kvm_guest_install/Win2008-64/Win2008-64.ini    |    5 -
 .../kvm_guest_install/Win2008-64/Win2008-64.steps  |   54 -
 .../kvm_guest_install/WinXP-32/WinXP-32.ini        |    5 -
 .../kvm_guest_install/WinXP-32/WinXP-32.steps      |  109 --
 .../kvm_guest_install/WinXP-64/WinXP-64.ini        |    5 -
 .../kvm_guest_install/WinXP-64/WinXP-64.steps      |   82 -
 .../kvm_runtest_old/kvm_guest_install/control      |   28 -
 .../kvm_guest_install/kvm_guest_install.py         |   99 --
 .../kvm_guest_install/kvm_guest_wizard.py          |  530 ------
 .../kvm_guest_install/memtest86+/memtest86+.ini    |    4 -
 .../kvm_guest_install/memtest86+/memtest86+.steps  |    7 -
 .../openSUSE-11.0-32/openSUSE-11.0-32.ini          |    5 -
 .../openSUSE-11.0-32/openSUSE-11.0-32.steps        |  154 --
 .../kvm_guest_install/slax-6.0.7/slax-6.0.7.ini    |    5 -
 .../kvm_guest_install/slax-6.0.7/slax-6.0.7.steps  |  237 ---
 .../kvm_guest_install/stepmaker/barriermaker.py    |  411 -----
 .../kvm_guest_install/stepmaker/calc_md5sum_1m.py  |   42 -
 .../kvm_guest_install/stepmaker/stepmaker.py       |  977 -----------
 client/tests/kvm_runtest_old/kvm_guests.cfg        |  286 ----
 client/tests/kvm_runtest_old/kvm_host.cfg          |  119 --
 client/tests/kvm_runtest_old/kvm_install/control   |    3 -
 .../kvm_runtest_old/kvm_install/kvm_install.py     |  225 ---
 client/tests/kvm_runtest_old/kvm_runtest.py        |  358 ----
 client/tests/kvm_runtest_old/kvm_setup/control     |    5 -
 .../tests/kvm_runtest_old/kvm_setup/kvm_setup.py   |  254 ---
 client/tests/kvm_runtest_old/kvm_test_boot/control |   29 -
 .../kvm_runtest_old/kvm_test_boot/kvm_test_boot.py |   24 -
 client/tests/kvm_runtest_old/kvm_test_config.py    |  291 ----
 .../kvm_runtest_old/kvm_test_migration/control     |   31 -
 .../kvm_test_migration/kvm_test_migration.py       |  136 --
 .../tests/kvm_runtest_old/kvm_test_reboot/control  |   29 -
 .../kvm_test_reboot/kvm_test_reboot.py             |   41 -
 client/tests/kvm_runtest_old/kvm_tests.cfg         |   34 -
 client/tests/kvm_runtest_old/kvm_utils.py          |  188 ---
 client/tests/kvm_runtest_old/kvmlog.cfg            |   24 -
 client/tests/kvm_runtest_old/myssh.py              |  127 --
 client/tests/kvm_runtest_old/scan_results.py       |   53 -
 client/tests/kvm_runtest_old/tarit.sh              |   11 -
 client/tests/kvm_runtest_old/vm.py                 |  288 ----
 client/tests/kvmtest/kvmtest.py                    |    2 +-
 client/tests/libhugetlbfs/libhugetlbfs.py          |    5 +-
 client/tests/ltp/ltp-diff.py                       |    2 +-
 client/tests/ltp/ltp.py                            |   16 +-
 client/tests/profiler_test/profiler_test.py        |   22 +-
 client/tests/systemtap/control                     |   14 +
 client/tests/systemtap/systemtap.py                |   94 ++
 conmux/conmux                                      |    9 +-
 database/database_connection.py                    |    8 +-
 database/migrate.py                                |   51 +-
 database/migrate_unittest.py                       |   44 +
 frontend/afe/common.py                             |    8 +
 frontend/afe/control_file.py                       |   99 +-
 frontend/afe/doctests/001_rpc_test.txt             |  300 ++++-
 frontend/afe/doctests/003_misc_rpc_features.txt    |   65 +-
 frontend/afe/doctests/test.control.3               |   11 +
 frontend/afe/frontend_test_utils.py                |  155 ++
 frontend/afe/json_rpc/serviceHandler.py            |   79 +-
 frontend/afe/management.py                         |    3 +-
 frontend/afe/model_logic.py                        |  237 +++-
 frontend/afe/models.py                             |  346 ++++-
 frontend/afe/readonly_connection.py                |   14 +-
 frontend/afe/rpc_handler.py                        |   54 +-
 frontend/afe/rpc_interface.py                      |  433 ++++--
 frontend/afe/rpc_interface_unittest.py             |   56 +
 frontend/afe/rpc_utils.py                          |  228 +++-
 frontend/afe/urls.py                               |    4 +-
 frontend/afe/views.py                              |    7 +-
 frontend/client/EmbeddedTkoClient-compile          |    8 +
 frontend/client/EmbeddedTkoClient-shell            |    4 +
 frontend/client/EmbeddedTkoClient.launch           |   21 +
 frontend/client/src/autotest/AfeClient.gwt.xml     |    1 +
 .../client/src/autotest/EmbeddedTkoClient.gwt.xml  |   16 +
 frontend/client/src/autotest/TkoClient.gwt.xml     |    1 +
 frontend/client/src/autotest/afe/AfeClient.java    |   22 +-
 frontend/client/src/autotest/afe/AfeUtils.java     |  101 ++
 .../client/src/autotest/afe/CreateJobView.java     |   63 +-
 .../client/src/autotest/afe/HostDataSource.java    |   10 +-
 .../client/src/autotest/afe/HostDetailView.java    |   63 +-
 frontend/client/src/autotest/afe/HostListView.java |   90 +-
 frontend/client/src/autotest/afe/HostTable.java    |   29 +-
 .../client/src/autotest/afe/JobDetailView.java     |   98 +-
 frontend/client/src/autotest/afe/JobListView.java  |   22 +-
 frontend/client/src/autotest/afe/JobTable.java     |    9 +-
 .../client/src/autotest/afe/RecurringTable.java    |   41 +
 .../client/src/autotest/afe/RecurringView.java     |  261 +++
 .../src/autotest/afe/UserPreferencesView.java      |    1 +
 .../src/autotest/common/CommonClassFactory.java    |   38 +
 .../client/src/autotest/common/CustomHistory.java  |   50 +-
 .../src/autotest/common/JsonRpcCallback.java       |   36 +-
 .../client/src/autotest/common/JsonRpcProxy.java   |  144 +-
 .../src/autotest/common/PaddedJsonRpcProxy.java    |  154 ++
 .../autotest/common/SiteCommonClassFactory.java    |    4 +
 frontend/client/src/autotest/common/Utils.java     |   27 +-
 .../src/autotest/common/XhrJsonRpcProxy.java       |   85 +
 .../src/autotest/common/table/RpcDataSource.java   |   22 +-
 .../src/autotest/common/table/TableDecorator.java  |   20 +-
 .../client/src/autotest/common/ui/ContextMenu.java |    4 +
 .../src/autotest/common/ui/CustomTabPanel.java     |    3 +-
 .../client/src/autotest/common/ui/DetailView.java  |    6 +-
 .../src/autotest/common/ui/SimpleDialog.java       |   33 +
 .../src/autotest/common/ui/SimpleHyperlink.java    |   13 +-
 .../client/src/autotest/common/ui/TabView.java     |   80 +-
 .../src/autotest/common/ui/TableActionsPanel.java  |   34 +-
 frontend/client/src/autotest/public/AfeClient.html |   32 +-
 .../src/autotest/public/EmbeddedTkoClientTest.html |   43 +
 frontend/client/src/autotest/public/TkoClient.html |    7 +-
 frontend/client/src/autotest/public/afeclient.css  |   23 +-
 frontend/client/src/autotest/public/common.css     |   32 +
 frontend/client/src/autotest/tko/CommonPanel.java  |  405 ++++--
 .../client/src/autotest/tko/ConditionTabView.java  |    7 +-
 .../client/src/autotest/tko/ConditionTestSet.java  |    6 +-
 .../client/src/autotest/tko/ContentSelect.java     |   85 +
 .../src/autotest/tko/DynamicGraphingFrontend.java  |   28 +-
 .../client/src/autotest/tko/EmbeddedTkoClient.java |   93 ++
 .../src/autotest/tko/ExistingGraphsFrontend.java   |    5 -
 .../client/src/autotest/tko/FilterSelector.java    |    2 +-
 .../client/src/autotest/tko/GraphingFrontend.java  |   55 +-
 frontend/client/src/autotest/tko/GraphingView.java |    6 +-
 frontend/client/src/autotest/tko/HeaderSelect.java |   94 +-
 .../src/autotest/tko/MachineQualHistogram.java     |   49 +
 .../autotest/tko/MachineQualHistogramFrontend.java |   37 +-
 frontend/client/src/autotest/tko/MetricsPlot.java  |   64 +
 .../src/autotest/tko/MetricsPlotFrontend.java      |   51 +-
 frontend/client/src/autotest/tko/Plot.java         |  113 ++
 .../src/autotest/tko/SavedQueriesControl.java      |   19 +-
 .../client/src/autotest/tko/SeriesSelector.java    |    1 -
 .../src/autotest/tko/SpreadsheetDataProcessor.java |    6 +-
 .../client/src/autotest/tko/SpreadsheetView.java   |  166 ++-
 .../client/src/autotest/tko/StatusSummary.java     |   26 +-
 frontend/client/src/autotest/tko/TableView.java    |  210 ++-
 .../client/src/autotest/tko/TestContextMenu.java   |    5 +
 .../client/src/autotest/tko/TestDetailView.java    |  164 +--
 .../src/autotest/tko/TestGroupDataSource.java      |   28 +-
 .../client/src/autotest/tko/TestLabelManager.java  |    5 +
 .../src/autotest/tko/TestSelectionListener.java    |    3 +
 frontend/client/src/autotest/tko/TkoClient.java    |   16 +-
 frontend/client/src/autotest/tko/TkoUtils.java     |   25 +-
 frontend/client/src/autotest/tko/WidgetList.java   |   27 +-
 frontend/client_compilation_unittest.py            |    4 +
 frontend/frontend_unittest.py                      |    4 +-
 frontend/migrations/027_fix_innodb.py              |   11 +
 frontend/migrations/028_add_atomic_groups.py       |   30 +
 .../migrations/029_add_atomic_group_invalid.py     |    6 +
 frontend/migrations/030_update_hosts_invalid.py    |    6 +
 frontend/migrations/031_add_hqe_aborted_flag.py    |   11 +
 frontend/migrations/032_add_recurring_run.py       |   23 +
 frontend/migrations/033_add_host_attributes.py     |   21 +
 .../034_add_parse_failed_repair_option.py          |    7 +
 frontend/migrations/035_job_max_runtime.py         |   12 +
 frontend/setup_test_environment.py                 |   26 +-
 global_config.ini                                  |    2 +
 mirror/mirror                                      |   89 +-
 new_tko/tko/common.py                              |    8 +
 new_tko/tko/csv_encoder.py                         |  164 ++
 new_tko/tko/csv_encoder_unittest.py                |  100 ++
 new_tko/tko/graphing_utils.py                      |  279 ++--
 new_tko/tko/models.py                              |   75 +-
 new_tko/tko/rpc_interface.py                       |  116 +-
 new_tko/tko/rpc_interface_unittest.py              |  203 +++
 new_tko/tko/urls.py                                |    4 +
 new_tko/tko/views.py                               |   21 +-
 scheduler/debug_babysitter.ini                     |   32 +
 scheduler/debug_scheduler.ini                      |   32 +
 scheduler/drone_manager.py                         |   41 +-
 scheduler/drone_utility.py                         |   16 +-
 scheduler/drones.py                                |    2 +-
 scheduler/email_manager.py                         |    4 +-
 scheduler/monitor_db.py                            | 1534 ++++++++++++-----
 scheduler/monitor_db_babysitter                    |   87 +-
 scheduler/monitor_db_cleanup.py                    |  259 +++
 scheduler/monitor_db_unittest.py                   | 1045 ++++++++++---
 server/autoserv                                    |   67 +-
 server/autoserv_parser.py                          |   10 +
 server/autoserv_parser_unittest.py                 |   34 +
 server/autotest.py                                 |  293 ++--
 server/autotest_unittest.py                        |   66 +-
 server/base_utils.py                               |    2 +-
 server/control_segments/crashdumps                 |    5 +-
 server/control_segments/crashinfo                  |    5 +-
 server/control_segments/repair                     |    5 +-
 server/crashcollect.py                             |  164 ++
 server/debug_server.ini                            |   32 +
 server/frontend.py                                 |  127 +-
 server/hosts/__init__.py                           |    5 +-
 server/hosts/abstract_ssh.py                       |  125 ++-
 server/hosts/base_classes.py                       |   57 +-
 server/hosts/paramiko_host.py                      |  102 +-
 server/hosts/remote.py                             |  106 +-
 server/hosts/serial.py                             |   25 +-
 server/hosts/ssh_host.py                           |   12 +-
 server/profiler.py                                 |   28 +-
 server/server_job.py                               |  250 ++-
 server/server_job_unittest.py                      |   14 +-
 server/subcommand.py                               |   30 +-
 server/test.py                                     |  123 ++-
 shadow_config.ini                                  |    6 +-
 tko/db.py                                          |    9 +-
 tko/jsonp_fetcher.cgi                              |   29 +-
 tko/migrations/021_fix_innodb.py                   |   14 +
 tko/migrations/022_widen_attribute_value_field.py  |    7 +
 tko/migrations/023_update_tests_invalid.py         |    6 +
 .../024_index_test_labels_tests_test_id.py         |    7 +
 tko/migrations/025_add_test_label_foreign_keys.py  |   24 +
 tko/migrations/026_fix_saved_graphing_queries.py   |   10 +
 tko/migrations/027_user_created_test_attributes.py |    9 +
 tko/migrations/028_add_tests_jobs_foreign_key.py   |   19 +
 tko/models.py                                      |    7 +-
 tko/parse.py                                       |   94 +-
 tko/parsers/test/execute_parser.py                 |    1 -
 tko/parsers/test/scenario_base.py                  |   11 +-
 tko/parsers/version_0.py                           |    7 +-
 tko/parsers/version_0_unittest.py                  |   83 +
 tko/parsers/version_1.py                           |   25 +-
 tko/retrieve_logs.cgi                              |   49 +-
 utils/packager.py                                  |   15 +-
 utils/release                                      |  167 ++
 utils/test_importer.py                             |   36 +-
 utils/unittest_suite.py                            |    4 +-
 402 files changed, 17801 insertions(+), 19742 deletions(-)
 create mode 100644 apache/conf/embedded-tko-directives
 create mode 100644 cli/atomicgroup.py
 create mode 100644 cli/atomicgroup_unittest.py
 create mode 100755 client/bin/base_partition.py
 mode change 100755 => 100644 client/bin/partition.py
 delete mode 100644 client/debug.ini
 create mode 100644 client/debug_client.ini
 create mode 100644 client/deps/dejagnu/common.py
 create mode 100644 client/deps/dejagnu/dejagnu-1.4.4.tar.bz2
 create mode 100755 client/deps/dejagnu/dejagnu.py
 create mode 100644 client/deps/systemtap/common.py
 create mode 100644 client/deps/systemtap/elfutils-0.140.tar.bz2
 create mode 100644 client/deps/systemtap/systemtap-0.9.5.tar.gz
 create mode 100755 client/deps/systemtap/systemtap.py
 delete mode 100644 client/profilers/oprofile/oprofile-0.9.3.tar.bz2
 create mode 100644 client/profilers/oprofile/oprofile-0.9.4.tar.bz2
 create mode 100644 client/setup_modules_unittest.py
 create mode 100644 client/tests/cerberus/cerberus.py
 create mode 100644 client/tests/cerberus/control
 create mode 100644 client/tests/cerberus/ctcs-1.3.1pre1.tar.bz2
 create mode 100644 client/tests/cerberus/fix-ctcs-build.patch
 create mode 100644 client/tests/dma_memtest/control
 create mode 100644 client/tests/dma_memtest/dma_memtest.py
 rename client/tests/{kvm_runtest_2 => kvm}/BEFORE_YOU_START (100%)
 create mode 100755 client/tests/kvm/calc_md5sum_1m.py
 rename client/tests/{kvm_runtest_2 => kvm}/control (69%)
 rename client/tests/{kvm_runtest_2 => kvm}/fix_cdkeys.py (92%)
 rename client/tests/{kvm_runtest_2/kvm_runtest_2.py => kvm/kvm.py} (58%)
 rename client/tests/{kvm_runtest_2 => kvm}/kvm_config.py (60%)
 rename client/tests/{kvm_runtest_2 => kvm}/kvm_guest_wizard.py (76%)
 rename client/tests/{kvm_runtest_2 => kvm}/kvm_install.py (71%)
 rename client/tests/{kvm_runtest_2 => kvm}/kvm_preprocessing.py (55%)
 rename client/tests/{kvm_runtest_2 => kvm}/kvm_tests.cfg.sample (100%)
 create mode 100644 client/tests/kvm/kvm_tests.py
 create mode 100644 client/tests/kvm/kvm_utils.py
 rename client/tests/{kvm_runtest_2 => kvm}/kvm_vm.py (54%)
 create mode 100755 client/tests/kvm/make_html_report.py
 rename client/tests/{kvm_runtest_2 => kvm}/ppm_utils.py (56%)
 rename client/tests/{kvm_runtest_2 => kvm}/scan_results.py (94%)
 rename client/tests/{kvm_runtest_2 => kvm}/stepeditor.py (84%)
 rename client/tests/{kvm_runtest_2 => kvm}/stepmaker.py (82%)
 rename client/tests/{kvm_runtest_2 => kvm}/steps/Belenix-0.7.1.steps (100%)
 rename client/tests/{kvm_runtest_2 => kvm}/steps/CentOS5-64.steps (100%)
 rename client/tests/{kvm_runtest_2 => kvm}/steps/DSL-4.2.5.steps (100%)
 rename client/tests/{kvm_runtest_2 => kvm}/steps/Fedora-8-64.steps (100%)
 rename client/tests/{kvm_runtest_2 => kvm}/steps/Fedora-8-i386.steps (100%)
 rename client/tests/{kvm_runtest_2 => kvm}/steps/Fedora-9-64.steps (100%)
 rename client/tests/{kvm_runtest_2 => kvm}/steps/Fedora-9-i386.steps (100%)
 rename client/tests/{kvm_runtest_2 => kvm}/steps/FreeSBIE-2.0.1.steps (100%)
 rename client/tests/{kvm_runtest_2 => kvm}/steps/Mandriva-One-2007-32.steps (100%)
 rename client/tests/{kvm_runtest_2 => kvm}/steps/NetBSD-1.6.2.steps (100%)
 rename client/tests/{kvm_runtest_2 => kvm}/steps/OpenBSD-4.1-32.steps (100%)
 rename client/tests/{kvm_runtest_2 => kvm}/steps/RHEL-3.9-i386.steps (100%)
 rename client/tests/{kvm_runtest_2 => kvm}/steps/RHEL-3.9-x86_64.steps (100%)
 rename client/tests/{kvm_runtest_2 => kvm}/steps/RHEL-4.7-i386.steps (100%)
 rename client/tests/{kvm_runtest_2 => kvm}/steps/RHEL-4.7-x86_64.steps (100%)
 rename client/tests/{kvm_runtest_2 => kvm}/steps/RHEL-5.3-i386.steps (100%)
 rename client/tests/{kvm_runtest_2 => kvm}/steps/RHEL-5.3-x86_64.steps (100%)
 rename client/tests/{kvm_runtest_2 => kvm}/steps/Slax-6.0.7.steps (100%)
 rename client/tests/{kvm_runtest_2 => kvm}/steps/Ubuntu-6.10-32.steps (100%)
 rename client/tests/{kvm_runtest_2 => kvm}/steps/Ubuntu-8.04-32-setupssh.steps (100%)
 rename client/tests/{kvm_runtest_2 => kvm}/steps/Ubuntu-8.04-32.steps (100%)
 rename client/tests/{kvm_runtest_2 => kvm}/steps/Ubuntu-8.04-server-32.steps (100%)
 rename client/tests/{kvm_runtest_2 => kvm}/steps/Ubuntu-8.10-64.steps (100%)
 rename client/tests/{kvm_runtest_2 => kvm}/steps/Ubuntu-8.10-server-32-gcc.steps (100%)
 rename client/tests/{kvm_runtest_2 => kvm}/steps/Ubuntu-8.10-server-32.steps (100%)
 rename client/tests/{kvm_runtest_2 => kvm}/steps/Win-Vista-32.steps (100%)
 rename client/tests/{kvm_runtest_2 => kvm}/steps/Win-Vista-64.steps (100%)
 rename client/tests/{kvm_runtest_2 => kvm}/steps/Win2000-32-setupssh.steps (100%)
 rename client/tests/{kvm_runtest_2 => kvm}/steps/Win2000-32.steps (100%)
 rename client/tests/{kvm_runtest_2 => kvm}/steps/Win2003-32-setupssh.steps (100%)
 rename client/tests/{kvm_runtest_2 => kvm}/steps/Win2003-32.steps (100%)
 rename client/tests/{kvm_runtest_2 => kvm}/steps/Win2003-64.steps (100%)
 rename client/tests/{kvm_runtest_2 => kvm}/steps/Win2008-32-setupssh.steps (100%)
 rename client/tests/{kvm_runtest_2 => kvm}/steps/Win2008-32-setuptelnet.steps (100%)
 rename client/tests/{kvm_runtest_2 => kvm}/steps/Win2008-32.steps (100%)
 rename client/tests/{kvm_runtest_2 => kvm}/steps/Win2008-64.steps (100%)
 rename client/tests/{kvm_runtest_2 => kvm}/steps/WinXP-32-setupssh.steps (100%)
 rename client/tests/{kvm_runtest_2 => kvm}/steps/WinXP-32.steps (100%)
 rename client/tests/{kvm_runtest_2 => kvm}/steps/WinXP-64.steps (100%)
 rename client/tests/{kvm_runtest_2 => kvm}/steps/memtest86+.steps (100%)
 rename client/tests/{kvm_runtest_2 => kvm}/steps/openSUSE-11.0-32.steps (100%)
 rename client/tests/{kvm_runtest_2 => kvm}/steps/openSUSE-11.1-32-and-64.steps (100%)
 delete mode 100755 client/tests/kvm_runtest_2/calc_md5sum_1m.py
 delete mode 100644 client/tests/kvm_runtest_2/kvm_log.py
 delete mode 100644 client/tests/kvm_runtest_2/kvm_tests.py
 delete mode 100644 client/tests/kvm_runtest_2/kvm_utils.py
 delete mode 100755 client/tests/kvm_runtest_2/make_html_report.py
 delete mode 100644 client/tests/kvm_runtest_old/control
 delete mode 100755 client/tests/kvm_runtest_old/fix_cdkeys.py
 delete mode 100755 client/tests/kvm_runtest_old/html_report.py
 delete mode 100755 client/tests/kvm_runtest_old/kvm.cfg
 delete mode 100644 client/tests/kvm_runtest_old/kvm.py
 delete mode 100755 client/tests/kvm_runtest_old/kvm_cleanup/control
 delete mode 100755 client/tests/kvm_runtest_old/kvm_cleanup/kvm_cleanup.py
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/Belenix-0.7.1/Belenix-0.7.1.ini
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/Belenix-0.7.1/Belenix-0.7.1.steps
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/CentOS5-64/CentOS5-64.ini
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/CentOS5-64/CentOS5-64.steps
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/DSL-4.2.5/DSL-4.2.5.ini
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/DSL-4.2.5/DSL-4.2.5.steps
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/Fedora-8-64/Fedora-8-64.ini
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/Fedora-8-64/Fedora-8-64.steps
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/Fedora-8-i386/Fedora-8-i386.ini
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/Fedora-8-i386/Fedora-8-i386.steps
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/Fedora-9-64/Fedora-9-64.ini
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/Fedora-9-64/Fedora-9-64.steps
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/Fedora-9-i386/Fedora-9-i386.ini
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/Fedora-9-i386/Fedora-9-i386.steps
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/FreeSBIE-2.0.1/FreeSBIE-2.0.1.ini
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/FreeSBIE-2.0.1/FreeSBIE-2.0.1.steps
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/Mandriva-One-2007-32/Mandriva-One-2007-32.ini
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/Mandriva-One-2007-32/Mandriva-One-2007-32.steps
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/NetBSD-1.6.2/NetBSD-1.6.2.ini
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/NetBSD-1.6.2/NetBSD-1.6.2.steps
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/OpenBSD-4.1-32/OpenBSD-4.1-32.ini
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/OpenBSD-4.1-32/OpenBSD-4.1-32.steps
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/Ubuntu-6.10-32/Ubuntu-6.10-32.ini
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/Ubuntu-6.10-32/Ubuntu-6.10-32.steps
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/Ubuntu-8.04-server-32/Ubuntu-8.04-server-32.ini
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/Ubuntu-8.04-server-32/Ubuntu-8.04-server-32.steps
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/Ubuntu-8.10-64/Ubuntu-8.10-64.ini
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/Ubuntu-8.10-64/Ubuntu-8.10-64.steps
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/Ubuntu-8.10-server-32/Ubuntu-8.10-server-32.ini
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/Ubuntu-8.10-server-32/Ubuntu-8.10-server-32.steps
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/Win-Vista-32/Win-Vista-32.ini
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/Win-Vista-32/Win-Vista-32.steps
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/Win-Vista-64/Win-Vista-64.ini
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/Win-Vista-64/Win-Vista-64.steps
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/Win2000-32/Win2000-32.ini
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/Win2000-32/Win2000-32.steps
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/Win2003-32/Win2003-32.ini
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/Win2003-32/Win2003-32.steps
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/Win2003-64/Win2003-64.ini
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/Win2003-64/Win2003-64.steps
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/Win2008-32/Win2008-32.ini
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/Win2008-32/Win2008-32.steps
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/Win2008-64/Win2008-64.ini
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/Win2008-64/Win2008-64.steps
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/WinXP-32/WinXP-32.ini
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/WinXP-32/WinXP-32.steps
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/WinXP-64/WinXP-64.ini
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/WinXP-64/WinXP-64.steps
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/control
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/kvm_guest_install.py
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/kvm_guest_wizard.py
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/memtest86+/memtest86+.ini
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/memtest86+/memtest86+.steps
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/openSUSE-11.0-32/openSUSE-11.0-32.ini
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/openSUSE-11.0-32/openSUSE-11.0-32.steps
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/slax-6.0.7/slax-6.0.7.ini
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guest_install/slax-6.0.7/slax-6.0.7.steps
 delete mode 100755 client/tests/kvm_runtest_old/kvm_guest_install/stepmaker/barriermaker.py
 delete mode 100755 client/tests/kvm_runtest_old/kvm_guest_install/stepmaker/calc_md5sum_1m.py
 delete mode 100755 client/tests/kvm_runtest_old/kvm_guest_install/stepmaker/stepmaker.py
 delete mode 100644 client/tests/kvm_runtest_old/kvm_guests.cfg
 delete mode 100644 client/tests/kvm_runtest_old/kvm_host.cfg
 delete mode 100755 client/tests/kvm_runtest_old/kvm_install/control
 delete mode 100755 client/tests/kvm_runtest_old/kvm_install/kvm_install.py
 delete mode 100755 client/tests/kvm_runtest_old/kvm_runtest.py
 delete mode 100755 client/tests/kvm_runtest_old/kvm_setup/control
 delete mode 100755 client/tests/kvm_runtest_old/kvm_setup/kvm_setup.py
 delete mode 100644 client/tests/kvm_runtest_old/kvm_test_boot/control
 delete mode 100644 client/tests/kvm_runtest_old/kvm_test_boot/kvm_test_boot.py
 delete mode 100755 client/tests/kvm_runtest_old/kvm_test_config.py
 delete mode 100644 client/tests/kvm_runtest_old/kvm_test_migration/control
 delete mode 100644 client/tests/kvm_runtest_old/kvm_test_migration/kvm_test_migration.py
 delete mode 100644 client/tests/kvm_runtest_old/kvm_test_reboot/control
 delete mode 100644 client/tests/kvm_runtest_old/kvm_test_reboot/kvm_test_reboot.py
 delete mode 100644 client/tests/kvm_runtest_old/kvm_tests.cfg
 delete mode 100644 client/tests/kvm_runtest_old/kvm_utils.py
 delete mode 100755 client/tests/kvm_runtest_old/kvmlog.cfg
 delete mode 100644 client/tests/kvm_runtest_old/myssh.py
 delete mode 100755 client/tests/kvm_runtest_old/scan_results.py
 delete mode 100755 client/tests/kvm_runtest_old/tarit.sh
 delete mode 100644 client/tests/kvm_runtest_old/vm.py
 create mode 100644 client/tests/systemtap/control
 create mode 100644 client/tests/systemtap/systemtap.py
 mode change 100644 => 100755 database/migrate.py
 create mode 100644 frontend/afe/common.py
 create mode 100644 frontend/afe/doctests/test.control.3
 create mode 100644 frontend/afe/frontend_test_utils.py
 create mode 100644 frontend/afe/rpc_interface_unittest.py
 create mode 100644 frontend/client/EmbeddedTkoClient-compile
 create mode 100644 frontend/client/EmbeddedTkoClient-shell
 create mode 100644 frontend/client/EmbeddedTkoClient.launch
 create mode 100644 frontend/client/src/autotest/EmbeddedTkoClient.gwt.xml
 create mode 100644 frontend/client/src/autotest/afe/RecurringTable.java
 create mode 100644 frontend/client/src/autotest/afe/RecurringView.java
 create mode 100644 frontend/client/src/autotest/common/CommonClassFactory.java
 create mode 100644 frontend/client/src/autotest/common/PaddedJsonRpcProxy.java
 create mode 100644 frontend/client/src/autotest/common/SiteCommonClassFactory.java
 create mode 100644 frontend/client/src/autotest/common/XhrJsonRpcProxy.java
 create mode 100644 frontend/client/src/autotest/common/ui/SimpleDialog.java
 create mode 100644 frontend/client/src/autotest/public/EmbeddedTkoClientTest.html
 create mode 100644 frontend/client/src/autotest/public/common.css
 create mode 100644 frontend/client/src/autotest/tko/ContentSelect.java
 create mode 100644 frontend/client/src/autotest/tko/EmbeddedTkoClient.java
 create mode 100644 frontend/client/src/autotest/tko/MachineQualHistogram.java
 create mode 100644 frontend/client/src/autotest/tko/MetricsPlot.java
 create mode 100644 frontend/client/src/autotest/tko/Plot.java
 create mode 100644 frontend/migrations/027_fix_innodb.py
 create mode 100644 frontend/migrations/028_add_atomic_groups.py
 create mode 100644 frontend/migrations/029_add_atomic_group_invalid.py
 create mode 100644 frontend/migrations/030_update_hosts_invalid.py
 create mode 100644 frontend/migrations/031_add_hqe_aborted_flag.py
 create mode 100644 frontend/migrations/032_add_recurring_run.py
 create mode 100644 frontend/migrations/033_add_host_attributes.py
 create mode 100644 frontend/migrations/034_add_parse_failed_repair_option.py
 create mode 100644 frontend/migrations/035_job_max_runtime.py
 create mode 100644 new_tko/tko/common.py
 create mode 100644 new_tko/tko/csv_encoder.py
 create mode 100644 new_tko/tko/csv_encoder_unittest.py
 create mode 100644 new_tko/tko/rpc_interface_unittest.py
 create mode 100644 scheduler/debug_babysitter.ini
 create mode 100644 scheduler/debug_scheduler.ini
 mode change 100644 => 100755 scheduler/monitor_db.py
 create mode 100644 scheduler/monitor_db_cleanup.py
 create mode 100644 server/autoserv_parser_unittest.py
 create mode 100644 server/crashcollect.py
 create mode 100644 server/debug_server.ini
 create mode 100644 tko/migrations/021_fix_innodb.py
 create mode 100644 tko/migrations/022_widen_attribute_value_field.py
 create mode 100644 tko/migrations/023_update_tests_invalid.py
 create mode 100644 tko/migrations/024_index_test_labels_tests_test_id.py
 create mode 100644 tko/migrations/025_add_test_label_foreign_keys.py
 create mode 100644 tko/migrations/026_fix_saved_graphing_queries.py
 create mode 100644 tko/migrations/027_user_created_test_attributes.py
 create mode 100644 tko/migrations/028_add_tests_jobs_foreign_key.py
 create mode 100644 utils/release

-- 
Eduardo
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux