Commit Graph

93 Commits

Author SHA1 Message Date
Zack Cerza
fe51db6fc0 Merge job_config and ctx.config 2013-09-11 15:14:58 -05:00
Zack Cerza
4e9c5378ba Don't fail if there's no job_id 2013-09-11 13:58:19 -05:00
Zack Cerza
713fa52455 Add job id and actual archive dir to job config
Also add job id to info.yaml
2013-09-11 13:44:28 -05:00
Zack Cerza
c9db15e67c s/jobid/job_id/ 2013-09-11 10:03:30 -05:00
Sage Weil
4857a2a0f0 Merge pull request #74 from ceph/wip-5954
Wip 5954
2013-09-05 15:16:32 -07:00
Zack Cerza
d6e8b2337f Add internal.sudo subtask. 2013-09-05 16:56:11 -05:00
Sage Weil
f3db12f025 schedule: strip out targets
If the user feeds in a yaml with targets, the worker will launch the job
but fail with

2013-09-03T11:18:34.333 CRITICAL:root:AssertionError: You cannot specify targets in a config file when using the --lock option

Just strip them out before scheduling.  This eases my personal workflow
where I have a test I'm running manually against some prelocked machines
but also want to schedule it.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-09-03 12:05:38 -07:00
Sage Weil
f342baeb22 run: do not import at top level
This makes a run with --lock hang when connecting, for some
reason.  E.g.,

 $ teuthology -v a.yaml --lock
 ...
 INFO:teuthology.task.internal:Opening connections...
 DEBUG:teuthology.task.internal:connecting to ubuntu@plana06.front.sepia.ceph.com
 <hangs>

No clue what is going on here, but this fixes it!

Signed-off-by: Sage Weil <sage@inktank.com>
2013-08-29 20:27:40 -07:00
Zack Cerza
40f1d4fc58 Don't print colon if there's no exception message. Also, remove testing
exception.
2013-08-29 15:05:33 -05:00
Zack Cerza
83a5ab19b0 Pretty-up write_initial_metadata; s/run/name/ 2013-08-29 15:05:33 -05:00
Zack Cerza
9550b49921 Add exception hook 2013-08-29 15:04:50 -05:00
Sage Weil
f6430df250 run: write info.yaml on job start
Include basic metadata bout the job.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-08-29 15:04:50 -05:00
Zack Cerza
a0e86c05bd Move logging setup out of main() 2013-08-29 15:03:30 -05:00
Sage Weil
27eea4ad5e test 2013-08-29 15:03:30 -05:00
Sage Weil
649bddf71b run: set up archive dir and logger output sooner
Signed-off-by: Sage Weil <sage@inktank.com>
2013-08-29 15:03:30 -05:00
Sandon Van Ness
41cafb1a10 Merge remote-tracking branch 'origin/wip-sandon-vm'
Conflicts:
	teuthology/lock.py
	teuthology/misc.py
	teuthology/task/install.py
2013-07-25 19:50:02 -07:00
Sandon Van Ness
c2c8a080c7 Added --os-type argument to run.py
Because for some reason it was never there before?

Signed-off-by: Sandon Van Ness <sandon@inktank.com>
2013-07-25 15:33:11 -07:00
Sandon Van Ness
810cca1daf Added get_distro() to misc.py
Since getting the ostype is used multiple places I made a
function for it and modified the existing code to use
said function. I also added tests for the function.

Signed-off-by: Sandon Van Ness <sandon@inktank.com>
2013-07-25 14:45:02 -07:00
Sandon Van Ness
5f9a1d8a0f Worker processes by machine type instead of teuthology branch.
teuthology-suite and schedulewill now take --worker instead of
--branch. The branch is set by setting teuthology_branch in the
yaml used to schedule the job.

The teuthology branches are assumed to be in ~/teuthology-$branch
of whatever user is running the workers.
2013-07-18 12:04:08 -07:00
Sandon Van Ness
e3a0742156 Don't install kernels on non-ubuntu VPS
Signed-off-by: Sandon Van Ness <sandon@inktank.com>
2013-07-12 20:20:45 -07:00
Warren Usui
8129bffb17 Implement full reinstallation of a VM system.
Downburst create is used to reinstall a VM when it is locked.
Downburst destroy is used to remove a VM when it is unlocked.
Host keys are regenerated on each vm instantiation, so the keys
need to be checked prior to use.
If needed, qa-ceph-chef is run on newly installed systems to insure that
they are fully functional.

Signed-off-by: Warren Usui <warren.usui@inktank.com>
2013-04-03 12:29:47 -07:00
Sage Weil
9f46f47b6b run: clean up machine_type thing
Signed-off-by: Sage Weil <sage@inktank.com>
2013-03-29 12:19:05 -07:00
Sage Weil
b815268b58 run: machine-type: foo, not machine_type: foo
Signed-off-by: Sage Weil <sage@inktank.com>
2013-03-28 15:25:10 -07:00
Sage Weil
4e68c2033c verify /var/lib/ceph not present on start
Verify there is no /var/lib/ceph, just like we do with the cephtest
directory.  We will need to change this (or make it optional) when we
allow runs against an existing cluster, but then a whole bunch of other
things will need to change then as well.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-03-23 20:58:46 -07:00
Warren Usui
09979541ca Implement email task.
Email.py was added so that the emailto attribute could be passed,
and to prevent 'module object has no attribute: email' errors from
happening.  Run.py actual performs the email operation and calls
suite.email_results to do the actual send mail operation.  The
information passed right now is the summary and config information.

Signed-off-by: Warren Usui <warren.usui@inktank.com>
2013-02-27 12:28:59 -08:00
Warren Usui
c5b55f9b76 Fix pass/fail display on exit.
Signed-off-by: Warren Usui <warren.usui@inktank.com>
2013-02-27 12:28:59 -08:00
Warren Usui
3e8d11b409 Add timer.py and display summary info in run.py.
Signed-off-by: Warren Usui <warren.usui@inktank.com>
2013-02-25 16:02:08 -08:00
Sage Weil
9996bdbe6e run: print pass/FAIL as final line
Makes it easy to tell at a glance if your last test passed or not.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-02-20 15:27:23 -08:00
Sandon Van Ness
030bc7c23d Added support for multiple types of machines.
Added the ability to support multiple types of machines with
--machine-type added to teuthology-lock when used with --lock-many
or --machine-type with teuthology --lock (automated tests). It
defaults to 'plana' and the 'vps' type is currently unused but
should be in the future.

Signed-off-by: Sandon Van Ness <sandon@van-ness.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2013-02-07 13:26:37 -08:00
Sam Lang
933cc3c382 run.py: Fix argument parsing for --name
With the addition of the --name argument to the
teuthology program (run.py), jobs were failing
because --name was being treated as a non-arg
option, even though the name was being supplied
by the workers.  Fix that and give it a metavar.

Signed-off-by: Sam Lang <sam.lang@inktank.com>
2013-02-01 07:46:04 -06:00
Sam Lang
87b9849628 add --name option to teuthology
Signed-off-by: Sam Lang <sam.lang@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2013-01-31 08:23:34 -06:00
Sage Weil
d07d7289a4 run: save original config, too 2012-11-25 08:37:06 -08:00
Josh Durgin
6c9d45e399 schedule: fix var name 2012-11-02 11:33:46 -07:00
Josh Durgin
5f4414e072 schedule: add option to display jobs in the queue
beanstalkd doesn't let you list jobs in the queue, but you can
inpsect specific job ids.
2012-11-02 11:08:59 -07:00
Josh Durgin
a09153b688 Allow scheduled jobs to use different teuthology branches
teuthology-[schedule|suite] get a parameter to specify the branch,
to put the job in a branch-specific queue. Workers running that
branch of teuthology can pull jobs from that queue.

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2012-09-21 17:16:56 -07:00
Tommi Virtanen
99ac6b0b3e Disable asynchronous DNS lookups.
Especially on older hosts, we keep triggering errors::

  ServerNotFoundError: Unable to find the server at
  teuthology.front.sepia.ceph.com: [Errno 3] name does not exist

That comes from libevent's evdns via gevent.dns and httplib2. The rate
of these errors is low enough that they seem to be perhaps timeouts,
or more arbitrary. Busy looping on DNS resolution calls has never
triggered them, so far.

With ``monkey.patch_all(dns=False)``, the teuthology process will
block as a whole whenever doing DNS resolution. This will hopefully be
rare enough that it won't matter.

The only real "fix" seems to be upgrading libraries and hoping for the
best; this commit can be reverted after that is done.
2012-08-13 16:18:33 -07:00
Sage Weil
042edcbe1e schedule/suite: schedule job, suite N times 2012-07-14 13:51:51 -07:00
Sage Weil
e5fb49914c run: make -a short for --archive 2012-07-05 13:43:19 -07:00
Sage Weil
c8e1ec6a91 record owner at start of run
So that we can clean up easily even when we don't finish and there is no
summary.yaml.
2012-06-20 11:35:43 -07:00
Josh Durgin
25114bf9a4 nuke: refactor to run in parallel and add unlock option
nuke-on-error already did this, but now teuthology-nuke does it
too. Also outputs targets that couldn't be nuked at the end.
2012-04-24 17:52:01 -07:00
Mark Nelson
1836d4672f Added assertion to check that targets > roles
Signed-off-by: Mark Nelson <mark.nelson@dreamhost.com>
2012-04-03 15:56:51 -07:00
Josh Durgin
1493674735 Use non-zero exit status if any tests failed
Fixes: #1989
2012-03-05 13:34:33 -08:00
Josh Durgin
2a1c74c5f5 Move duration calculation to an internal task
This excludes all generic start up costs, like waiting for locks,
rebooting into a new kernel, etc.
2012-02-21 15:12:26 -08:00
Sage Weil
8fb115fe2c include run duration in summary.yaml 2012-01-16 12:39:20 -08:00
Sage Weil
b354ce4e91 run: put pid in archive dir
This will make it easy for teuthology-ls to show you the running process's
pid (if it's still running).  Or for other utiltizes to kill + clean up
a hung teuthology run.
2012-01-08 14:39:30 -08:00
Josh Durgin
561f06cf94 suite: make email-on-success the default behavior
This way you can tell when a run is complete, instead of wondering if
it's stuck in the queue.
2012-01-05 17:27:31 -08:00
Josh Durgin
cdd5c456a0 nuke-on-error: only unlock if this run locked the machines 2012-01-03 13:02:31 -08:00
Josh Durgin
508f4f8359 Save summary after nuking machines.
This way you can tell when tests are entirely finished running.
2011-11-18 13:53:51 -08:00
Josh Durgin
a763297685 misc: move deep_merge out of the MergeConfig class - it's generic 2011-11-17 13:06:36 -08:00
Josh Durgin
c6988a07f4 Save config after locking nodes, so targets are included. 2011-11-17 11:57:07 -08:00