Project

General

Profile

Actions

Feature #9775

closed

teuthology-suite: use same s3-tests branch as suite-branch; override with argument

Added by Sage Weil over 9 years ago. Updated over 9 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
-
Target version:
% Done:

0%

Source:
other
Tags:
Backport:
Reviewed:
Affected Versions:

Description

Currently we use the s3-tests branch of the same name as ceph if it is exists, otherwise master. Sometimes we are testing code that is targetted at an older branch (say, firefly) and want to run those s3-tests instead.

It is (maybe?) possible to put this in a yaml and pass it to teuthology-suite, provided the master sha1 generated by teuthology-suite itself doesn't take precedence. However, that makes for an awkward experience for someone who "just wants to run rgw suite on wip-myfix-firefly on firefly".

In reality, I think what we really want is the major release version of the tests. firefly, giant, dumpling, etc. Which means the s3-tests branch more naturally aligns with the ceph-qa-suite branch we are using, not ceph.git.

So, three changes:

1) make the s3-tests branch default to the ceph-qa-suite branch, not ceph branch
2) if the branch doesn't exist, error out
3) add an argument (--s3-tests-branch <foo>) to specify this on the command line

Note that suite branch defaults to the ceph branch. Make sure the s3-tests branch resolution happens after that, so that

teuthology-suite -s rgw -c firefly

will use firefly branch of ceph, suite, and s3-tests.

Actions #1

Updated by Sage Weil over 9 years ago

  • Description updated (diff)
Actions #2

Updated by Zack Cerza over 9 years ago

  • Tracker changed from Bug to Feature

The current behavior isn't what you're saying above since the s3tests task never actually used the s3_branch value that teuthogy-suite set, and schedule_suite.sh set before it. It turns out that it this was always the behavior:

  1. s3tests checks to see if it is passed a branch arg
  2. If not, it uses master. Hardcoded.
  3. If any of the git processes on remotes fail, job fails.

It seems that we want:

  1. s3tests checks to see if it is passed a branch arg
  2. If not, it uses suite_branch (which defaults to the ceph branch but can be overridden
  3. If any of the git processes on remotes fail, job fails.

Additionally you're asking for another arg to teuthology-suite to override, but is it really necessary? How often do ceph's branch, suite_branch, and s3tests' branch have to be all different?

Actions #3

Updated by Zack Cerza over 9 years ago

  • Target version set to sprint16
Actions #4

Updated by Sage Weil over 9 years ago

Zack Cerza wrote:

The current behavior isn't what you're saying above since the s3tests task never actually used the s3_branch value that teuthogy-suite set, and schedule_suite.sh set before it. It turns out that it this was always the behavior:

  1. s3tests checks to see if it is passed a branch arg
  2. If not, it uses master. Hardcoded.
  3. If any of the git processes on remotes fail, job fails.

It seems that we want:

  1. s3tests checks to see if it is passed a branch arg
  2. If not, it uses suite_branch (which defaults to the ceph branch but can be overridden
  3. If any of the git processes on remotes fail, job fails.

Ah, that's simpler. Then suite.py doesn't have to do anything special.

Additionally you're asking for another arg to teuthology-suite to override, but is it really necessary? How often do ceph's branch, suite_branch, and s3tests' branch have to be all different?

Fair enough. The user can work around this by pushing a branch with teh same name to ceph-qa-suite.git and s3-tests.git pointing to whatever they want.

Actions #5

Updated by Zack Cerza over 9 years ago

  • Assignee set to Zack Cerza
Actions

Also available in: Atom PDF