summaryrefslogtreecommitdiff
path: root/server
AgeCommit message (Collapse)AuthorFilesLines
2011-06-21client/common_lib/hosts/base_classes.py: Unify host up/down timeouts and ↵lmr1-16/+17
expose in global_config Confusingly, timeouts for the same thing are set differently in multiple places. Also, many of the host timeouts are far too long for Chrome OS. As such, I've unified a couple of the host timeouts and exposed the default values through global config. Signed-off-by: Dale Curtis <dalecurtis@google.com> git-svn-id: svn://test.kernel.org/autotest/trunk@5434 592f7852-d20e-0410-864c-8624ca9c26a4
2011-06-21server/crashcollect.py: Add control for crash collection timeout to ↵lmr1-1/+7
global_config The four hour timeout for crash collection is way too long for Chrome OS, so we moved this parameter into global config for easier control. Signed-off-by: Dale Curtis <dalecurtis@google.com> git-svn-id: svn://test.kernel.org/autotest/trunk@5433 592f7852-d20e-0410-864c-8624ca9c26a4
2011-06-21server/hosts/abstract_ssh.py: Allow for site extension of base ssh commandlmr1-2/+7
There have been several cases where we need to modify the SSH command line for Chrome OS. This patch adds site extensibility to the make_ssh_command function in abstract_ssh. Signed-off-by: Dale Curtis <dalecurtis@google.com> git-svn-id: svn://test.kernel.org/autotest/trunk@5432 592f7852-d20e-0410-864c-8624ca9c26a4
2011-05-25server/autotest.py: Fixing a couple of minor exception formatting errorslmr1-3/+3
Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com> git-svn-id: svn://test.kernel.org/autotest/trunk@5379 592f7852-d20e-0410-864c-8624ca9c26a4
2011-04-19Fixed unit test for server/autotest.pylmr1-1/+1
Fix unit test for server/autotest.py broke in r5317. git-svn-id: svn://test.kernel.org/autotest/trunk@5323 592f7852-d20e-0410-864c-8624ca9c26a4
2011-04-18server/autotest.py: Refactor code for site modificationlmr1-7/+10
I need to override the logic to read fetch_location from global_config with site_autotest implementation. So I refactored it out to its own function inside server/autotest.py. Signed-off-by: Eric Li <ericli@google.com> git-svn-id: svn://test.kernel.org/autotest/trunk@5317 592f7852-d20e-0410-864c-8624ca9c26a4
2011-03-24job: Remove non-existant parameter on generate_control_file calls (Fix #47)lmr1-2/+1
Since its introduction on r2440, server/frontend.py has a call to generate_control_file, present on frontend/afe/rpc_interface.py. This method apparently never had a do_push_packages parameter, but for some reason we were passing it in case we provide a specific kernel with -k. Remove all references to do_push_packages. With this, bug #47 is fixed, and it is possible to specify -k through the cli. Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com> git-svn-id: svn://test.kernel.org/autotest/trunk@5287 592f7852-d20e-0410-864c-8624ca9c26a4
2011-02-21Fix Wrong 4th argument in call to self.job.record()lmr1-1/+1
Signed-off-by: Jongki Suwandi <jsuwandi@google.com> git-svn-id: svn://test.kernel.org/autotest/trunk@5257 592f7852-d20e-0410-864c-8624ca9c26a4
2011-02-16Fixed hardcoded "four hours" info messagelmr1-2/+2
Signed-off-by: Jongki Suwandi <jsuwandi@google.com> git-svn-id: svn://test.kernel.org/autotest/trunk@5233 592f7852-d20e-0410-864c-8624ca9c26a4
2011-02-04IGTTOU was causing a hang in terminals with tostop set (which seems to be ↵ericli1-0/+3
the default for my local emacs configuration). Signed-off-by: David Rochberg (rochberg@chromium.org) BUG=chromiumos:7716 TEST=stty tostop, then run with and without this change. Without the change, tests will hang in a SIGTTOU/syscall-restarted loop. Change-Id: Ib5317e238b68089d71e8e57418717e7553fd64d9 Review URL: http://codereview.chromium.org/6368022 git-svn-id: svn://test.kernel.org/autotest/trunk@5216 592f7852-d20e-0410-864c-8624ca9c26a4
2011-01-06autoserv: improve command-line error handlinglmr2-9/+5
I got confused by the error messages printed by autoserv when I tried to use it, so I tried to improve it a little bit. Instead of printing error messages to stdout (and sometimes simply dumping help text without any explanation), use the OptionParse.error() method that aborts the program automatically after printing a short command-line help text and an error message. Signed-off-by: Eduardo Habkost <ehabkost@raisama.net> git-svn-id: svn://test.kernel.org/autotest/trunk@5067 592f7852-d20e-0410-864c-8624ca9c26a4
2010-12-28server: fix logfile following to use ssh username and portlmr2-18/+19
The current logging code assumes that 'root' can be used to log into the client machine, which isn't always the case. This patch makes the logger user the user and port settings saved in the host object. This patch also removes the used-exactly-once run_cmd_on_host() function and inlined it since it doesn't seem like there is any benefit to splitting it out. It instead adds a _make_ssh_cmd() method to the abstract_ssh class which respects the username and port settings. It also eliminates the redirection of stderr from the subprocess.Popen() call. If the command fails, then I want to see the output appear in the log. Signed-off-by: Grant Likely <grant.likely@secretlab.ca> git-svn-id: svn://test.kernel.org/autotest/trunk@5011 592f7852-d20e-0410-864c-8624ca9c26a4
2010-12-28server: Only use client autotest directory if it is writablelmr2-0/+4
When using an unprivileged account on a client, need to make sure that the autotest directory is actually writable before trying to use it. Otherwise the test will fail. This problem was encountered when trying to use an unprivileged account on the same machine as the autotest server (to use it for running builds). Without this patch, autotest would try to delete the server files while installing the needed client side files in /usr/local/autotest. Signed-off-by: Grant Likely <grant.likely@secretlab.ca> git-svn-id: svn://test.kernel.org/autotest/trunk@5010 592f7852-d20e-0410-864c-8624ca9c26a4
2010-12-28server: Store copy of /var/log/messages into /var/tmp insteadlmr1-1/+1
When connecting to an unprivileged account on a client, /var/lib will not be writable. Store the snapshot of /var/log/messages in /var/tmp instead which is far more likely to be writable. v2: - Moved storage location from /tmp to /var/tmp so that it survives over reboot Signed-off-by: Grant Likely <grant.likely@secretlab.ca> git-svn-id: svn://test.kernel.org/autotest/trunk@5009 592f7852-d20e-0410-864c-8624ca9c26a4
2010-12-28server: simplify parse_machine and add a test caselmr2-28/+42
This patch simplifies the implementation of base_utils.parse_machine() and adds test cases to make sure it is parsing strings correctly. v2: - Reordered with 'server: user parse_machine directly inside create_host()' to avoid creating an non-bisectable commit. - modified code to use the form "if '@' in string:" which is clearer Signed-off-by: Grant Likely <grant.likely@secretlab.ca> git-svn-id: svn://test.kernel.org/autotest/trunk@5008 592f7852-d20e-0410-864c-8624ca9c26a4
2010-12-28server: use parse_machine directly inside create_host()lmr7-23/+8
Currently, parse_machine() is called explicitly by the control_segments hooks before calling create_host, but is not used by anything else which means that a machine that is specified in [user[:pass]@]host[:port] format will not get the username, password and port preferences applied consistently (the hooks will use it correctly, but other connections will not). This patch moves the call to parse_machine directly inside create_host so that all references to clients can also specify a username/port/password (for instance, in the server's list of hosts). At the same time, reorder the arguments so it emits the values in the same order that they are passed. v2: - reordered with 'server: simplify parse_machine ...' - fixed non-bisectable commit by fixing return result order - cleaned up spacing around '=' in keyword arguments Signed-off-by: Grant Likely <grant.likely@secretlab.ca> git-svn-id: svn://test.kernel.org/autotest/trunk@5007 592f7852-d20e-0410-864c-8624ca9c26a4
2010-12-21server/hosts/remote.py: Look for the previous boot_id in all caseslmr1-0/+1
Signed-off-by: Jean-Marc Eurin <jmeurin@google.com> git-svn-id: svn://test.kernel.org/autotest/trunk@5000 592f7852-d20e-0410-864c-8624ca9c26a4
2010-11-27Making the barrier test work on the serverlmr1-15/+23
Signed-off-by: Jean-Marc Eurin <jmeurin@google.com> git-svn-id: svn://test.kernel.org/autotest/trunk@4965 592f7852-d20e-0410-864c-8624ca9c26a4
2010-11-27Cleaning up and using the base code for the hostlmr2-4/+31
Cleaning up and using the base code for the host. In the profiler code, the hostid should be a hostname. Added some client barrier tests and unittests. Signed-off-by: Jean-Marc Eurin <jmeurin@google.com> git-svn-id: svn://test.kernel.org/autotest/trunk@4964 592f7852-d20e-0410-864c-8624ca9c26a4
2010-11-24pass SSH options into SSHHostlmr3-5/+9
We found the previous patch only fixed a part of our problem. We just found there are occurrences inside server test control files which called hosts.create_host(hostname) without properly passed in ssh options. And I do not want to touch the test control files at all. So here is a solution, my previous changes to SSHHost is reverted in this patch, since it is not necessary any more. I tested this change with both client and server side sleeptest against a remote VM ( on port other than 22). Signed-off-by: Eric Li <ericli@google.com> git-svn-id: svn://test.kernel.org/autotest/trunk@4944 592f7852-d20e-0410-864c-8624ca9c26a4
2010-11-22pass SSH options into SSHHostlmr1-2/+5
When we started using autotest to run test against a VM based chromium os, we found autotest was not able to handle ssh port other than 22, autoserv --ssh-port did not work as it suppose to. It turned our the ssh options were not properly passed into SSHHost class. Signed-off-by: Eric Li <ericli@google.com> git-svn-id: svn://test.kernel.org/autotest/trunk@4939 592f7852-d20e-0410-864c-8624ca9c26a4
2010-11-11Adds a barriertest_2client server side test that tests barrierlmr1-0/+44
Adds a barriertest_2client server side test that tests barrier functionality between two client tests without any server involvement. Signed-off-by: Gregory Smith <gps@google.com> git-svn-id: svn://test.kernel.org/autotest/trunk@4919 592f7852-d20e-0410-864c-8624ca9c26a4
2010-11-08Adding the drone to the keyval filelmr1-1/+2
Signed-off-by: Jean-Marc Eurin <jmeurin@google.com> git-svn-id: svn://test.kernel.org/autotest/trunk@4908 592f7852-d20e-0410-864c-8624ca9c26a4
2010-11-08Massive permission and indentation fix on the autotest treelmr3-4/+3
Once again I went through the autotest tree with my automated script to check all autotest source, and discovered several places that needed permission and indentation (including trailing whitespace) fixes. I have checked the generated patch and indeed it looks OK. Will commit this shortly, as preparation for autotest 0.13. Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com> git-svn-id: svn://test.kernel.org/autotest/trunk@4907 592f7852-d20e-0410-864c-8624ca9c26a4
2010-10-19server/frontend.py: Add support for passing in a kernel command linelmr1-4/+16
Signed-off-by: Gregory Smith <gps@google.com> git-svn-id: svn://test.kernel.org/autotest/trunk@4872 592f7852-d20e-0410-864c-8624ca9c26a4
2010-10-12server/git_kernel.py - Allow to specify a builddir for GitKernellmr1-0/+2
Make it possible to specify a builddir for the install() method of the GitKernel class. Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com> git-svn-id: svn://test.kernel.org/autotest/trunk@4847 592f7852-d20e-0410-864c-8624ca9c26a4
2010-10-08Replicate the weburl default set on the GitKernel classlmr1-1/+1
So people don't have to actually provide the weburl in control files. Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com> git-svn-id: svn://test.kernel.org/autotest/trunk@4845 592f7852-d20e-0410-864c-8624ca9c26a4
2010-10-08server/git_kernel.py: Revert change made on r4811lmr1-1/+3
Turns out it was wrong. git-svn-id: svn://test.kernel.org/autotest/trunk@4844 592f7852-d20e-0410-864c-8624ca9c26a4
2010-10-06Fix use of rsync in server/hosts/abstract_ssh.pylmr1-0/+1
This patch fixes a long, long standing bug (in fact, I started to dig and gave up when I looked the last 5 changes to the file, dating 8 months ago): The method use_rsync(), used to verify whether autotest should be copied to the client using scp or rsync does not return in case we detect that the client machine does have rsync installed, so the first use_rsync() check will allways return None. Subsequent checks will return True because during the first run an attribute will be set to True, making the function return properly. Bottom line, we will *allways* end up copying all the client code to the client machine using scp instead of rsync, which should be way faster after the 1st time the client got copied to the machine. We probably didn't notice this because: 1) Most of the time we'll run with the key [PACKAGES] serve_packages_from_autoserv: True Which makes the amount of data being copied way smaller, so we won't bother 2) Other times we'd be installing the client using the packaging system. Anyway, it's a bug, should be fixed and will probably help people using autoserv to install autotest in remote machines (as I was doing this week :)) Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com> git-svn-id: svn://test.kernel.org/autotest/trunk@4820 592f7852-d20e-0410-864c-8624ca9c26a4
2010-09-26server/git_kernel.py - Use the correct base directorylmr1-4/+2
The original code of git_kernel.py was attributing an incorrect path to the source code directory in the client. Fixing that. Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com> git-svn-id: svn://test.kernel.org/autotest/trunk@4811 592f7852-d20e-0410-864c-8624ca9c26a4
2010-09-26server/git_kernel.py - Fix __init__ call in GitKernellmr1-1/+1
During the change made on r4792, I (lmr) forgot to change the call to the git parent class to use super(). Let's fix that. Signed-off-by: Frank Becker <fb@alien8.de> Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com> git-svn-id: svn://test.kernel.org/autotest/trunk@4810 592f7852-d20e-0410-864c-8624ca9c26a4
2010-09-16[PATCH] Read all labels from host_keyvals file and handle the commaericli1-1/+16
(,) within labels properly. Chromium OS autotest project had assigned labels with comma to test hosts and this situation makes the current host_keyvals file impossible to parse out correct label values. This change will fix/enhance that. git-svn-id: svn://test.kernel.org/autotest/trunk@4793 592f7852-d20e-0410-864c-8624ca9c26a4
2010-09-15Introduce common_lib.revision_controllmr2-135/+20
Introduce a library with classes to abstract interaction with version control system repositories. Right now, there is only GitRepo implemented. Made server/git.py to use the common_lib implementation (the server git class represents the install of a git repo in a host). Now, test writers and can use a shared API to check out and update git code conveniently. Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com> git-svn-id: svn://test.kernel.org/autotest/trunk@4792 592f7852-d20e-0410-864c-8624ca9c26a4
2010-09-14Fix for r4780 - server/git.py GitRepo extensionlmr1-1/+1
Fix for my last patch (r4780). Thanks to John Admanski <jadmanski@google.com>. Signed-off-by: Frank Becker <fb@alien8.de> git-svn-id: svn://test.kernel.org/autotest/trunk@4786 592f7852-d20e-0410-864c-8624ca9c26a4
2010-09-14Add support to the parser and server job for logging the result of an exceptionjadmanski1-1/+3
when it is raised within the server control file and not inside of a job. Currently these exceptions are only logged into the debug/ logs and not into the status log (and thus not into the database). It adds support by logging an INFO message with a special job_abort_reason field when a server job fails with an exception, and the parser then special-cases these info lines (much like it already does with kernel version INFO lines) and updates the SERVER_JOB entry. Unfortunately this can't easily be done with a "normal" status log entry since when a failure occurs outside of a test the special SERVER_JOB entry is the only place where this reason information actually belongs, but the parser has no existing mechanism for modifying this entry (since it's automatically generated by the parser, rather than being generated in response to a specific log). Adding this (relatively small) special case seemed more practical than either adding yet another special entry or trying to perform a major restructuring of the parser. Signed-off-by: John Admanski <jadmanski@google.com> git-svn-id: svn://test.kernel.org/autotest/trunk@4785 592f7852-d20e-0410-864c-8624ca9c26a4
2010-09-13server/git.py server/git_kernel.py: Coding style cleanuplmr2-75/+109
This patch does some cleaning up on the git checkout class: 1 - Used the logging module 2 - Made docstrings comply with coding standards Next steps on the work of getting the git class suitable for common autotest usage are: * Decouple interaction with git repo from the concept of host (which is only available on the autotest server) * Move the libraries to the common lib That will be made on a separate patchset. Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com> git-svn-id: svn://test.kernel.org/autotest/trunk@4782 592f7852-d20e-0410-864c-8624ca9c26a4
2010-09-13server/git.py: Simplify methods get_local_head and get_remote_headlmr1-56/+20
It is not necessary to resort to the git web frontend to verify whether the local repo is outdated with regards to origin. This patch simplifies the methods using built in git commands, thus eliminating the need of a web URL. The interface was maintainted, and now people who still specify a web URL on their control file will have a deprecationwarning message on their logs. Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com> git-svn-id: svn://test.kernel.org/autotest/trunk@4781 592f7852-d20e-0410-864c-8624ca9c26a4
2010-09-13server/git.py server/git_kernel.py: GitKernel checkout extensionlmr2-8/+127
I need to checkout kernel revisions by branch, commit id, or tag before building and testing them. Here is my patch to extend server/git.py and server/git_kernel.py I'm very open for any kind of suggestions. The following new methods exist in GitKernel() * checkout - Check out a certain branch, tag or revision. Optional a local branch name can be given for -b * show_branch - print the current local branch * show_branches - print the local and/or remote branches * show_revision - print the current tip commit id (checked out revision) * extended install - optional a commit id / revision that is checked out * before patching, configure, and build Therefore the following methods were added to Git() * get_revision() - To print the current tip commit id (aka revision). * checkout() - Check out a certain branch, tag or revision. * get_branch() - return the branches depending on options Risk: Low (Just extends functionality, doesn't change existing one.) Visibility: Users who build Linux kernels may profit. Signed-off-by: Frank Becker <fb@alien8.de> git-svn-id: svn://test.kernel.org/autotest/trunk@4780 592f7852-d20e-0410-864c-8624ca9c26a4
2010-08-25server/hosts/remote.py: Adding a flag to allow halting before powercyclinglmr2-1/+11
Adding a flag to allow halting before powercycling. Signed-off-by: Fa Yoeu <fayoeu@google.com> git-svn-id: svn://test.kernel.org/autotest/trunk@4757 592f7852-d20e-0410-864c-8624ca9c26a4
2010-08-20server/autotest.py: Make an error message become an info messagelmr1-4/+3
If we can't install the client using the autotest internal package management system, give the user a less intimidating message, after all we'll fall back to use other methods to install the client. Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com> git-svn-id: svn://test.kernel.org/autotest/trunk@4749 592f7852-d20e-0410-864c-8624ca9c26a4
2010-07-28Makes some changes to the partitioning code and the autotest.py code to make ↵jadmanski2-19/+20
it a little easier to override more reliably. Specifically: - Switch the partition imports from execfile back to an import * style of loading, ultimately import seems to be the most reliable and portable - Clean up the base+site definitions in autotest.py to make Site overrides more consistent - Drop the explicit failure if the Autotest.source_material is a file and not a directory, there's no reason to outright fail and it just introduces some unnecessary fragility Signed-off-by: John Admanski <jadmanski@google.com> git-svn-id: svn://test.kernel.org/autotest/trunk@4736 592f7852-d20e-0410-864c-8624ca9c26a4
2010-07-19Add in a run_test mixin for host objects that allows you run a clientjadmanski3-1/+69
test with just host.run_test, instead of having to setup an autotest client directly and generate a control file. Note that since server-client job state is managed automatically, this also supports profilers out of the box. If you do a job.profilers.add before calling host.run_test then the client test will automatically be run with the appropriate profilers. Signed-off-by: John Admanski <jadmanski@google.com> git-svn-id: svn://test.kernel.org/autotest/trunk@4725 592f7852-d20e-0410-864c-8624ca9c26a4
2010-06-25Change autotest to not log Autotest.installjadmanski1-2/+0
Signed-off-by: Darren Kuo <darrenkuo@google.com> git-svn-id: svn://test.kernel.org/autotest/trunk@4681 592f7852-d20e-0410-864c-8624ca9c26a4
2010-06-17Put the continuous parsing hooks into the refactored job.record code.jadmanski1-2/+3
Signed-off-by: John Admanski <jadmanski@google.com> git-svn-id: svn://test.kernel.org/autotest/trunk@4632 592f7852-d20e-0410-864c-8624ca9c26a4
2010-06-17Add some debug logging to the Host.wait_up method.jadmanski1-0/+3
Signed-off-by: John Admanski <jadmanski@google.com> git-svn-id: svn://test.kernel.org/autotest/trunk@4631 592f7852-d20e-0410-864c-8624ca9c26a4
2010-06-11Restores proper support for handling unexpected client terminationsjadmanski2-16/+30
after the server_job.record refactoring. The original record implementation just dumped whatever status logs the client sent it into the status.log, so if the client died on you there was never a problem with the client leaving the server-side logging in a funky state. Now that client job records are being properly routed though the server-side job.record a client death can leave the server logging in a broken state. This implementation adds a special get_record_context method which can be used by the autotest.py code to retrieve the current job.record context at the start of the client job, and then restore it at the end so that the server side logging is put back into a known-good state. It also removes a bunch of self._record_prefix uses in the server_job code which were rendered useless by the job.record changes, but weren't removed. Signed-off-by: John Admanski <jadmanski@google.com> git-svn-id: svn://test.kernel.org/autotest/trunk@4606 592f7852-d20e-0410-864c-8624ca9c26a4
2010-06-11Refactor the server_job code to use the base_job implementation ofjadmanski3-233/+86
record. The two main features that the server job code added on top of the basic job record were the ability to inject client job records into the server job record, and the ability to inject console/vlm warnings into the record. The Autotest injection was implemented by adding a parse classmethod to the status_log_entry class that does the inverse of the render method, so that the Autotest class can construct status_log_entries from the raw text status logs it gets from the client. The server then re-records the messages, rather than using a low-level method to bypass the old job.record rendering. The warning injection was implemented by using the record_hook; to make it work better it was moved to be called before the entry is logged, not after. This required a slightly more involved hook, as it was useful to be able to call job.record directly from the hook and so the hook was wrapped in a callable class that prevents recursion. Signed-off-by: John Admanski <jadmanski@google.com> git-svn-id: svn://test.kernel.org/autotest/trunk@4605 592f7852-d20e-0410-864c-8624ca9c26a4
2010-06-11Add the hostname to the 'unexpected final status message from client'jadmanski1-1/+1
ABORT error. Signed-off-by: Gregory Smith <gps@google.com> git-svn-id: svn://test.kernel.org/autotest/trunk@4600 592f7852-d20e-0410-864c-8624ca9c26a4
2010-06-04Expose max_runtime_hrs create_job() RPC argument tojamesren1-2/+4
frontend.AFE.run_test_suites(). Signed-off-by: Mihai Rusu <dizzy@google.com> git-svn-id: svn://test.kernel.org/autotest/trunk@4578 592f7852-d20e-0410-864c-8624ca9c26a4
2010-05-27get_boot_id to return None when not supported by the kernel.mbligh1-0/+2
Signed-off-by: Josh Gilkerson <jwg@google.com> git-svn-id: svn://test.kernel.org/autotest/trunk@4566 592f7852-d20e-0410-864c-8624ca9c26a4