Skip to content

Commit

Permalink
Merge pull request #1936 from amathuria/wip-amat-fix-suite-sha1
Browse files Browse the repository at this point in the history
suite/run: Add a option to specify suite sha1
  • Loading branch information
zmc authored Sep 24, 2024
2 parents 3752d38 + 1324ae5 commit b7eaa32
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 11 deletions.
2 changes: 2 additions & 0 deletions scripts/suite.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,8 @@
[default: qa]
--suite-branch <suite_branch>
Use this suite branch instead of the ceph branch
--suite-sha1 <suite_sha1> The suite sha1 to use for the tests (overrides
--suite-branch)
--suite-dir <suite_dir> Use this alternative directory as-is when
assembling jobs from yaml fragments. This causes
<suite_branch> to be ignored for scheduling
Expand Down
31 changes: 22 additions & 9 deletions teuthology/suite/run.py
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ def create_initial_config(self):
self.suite_repo_path = self.args.suite_dir
else:
self.suite_repo_path = util.fetch_repos(
suite_branch, test_name=self.name, dry_run=self.args.dry_run)
suite_branch, test_name=self.name, dry_run=self.args.dry_run, commit=suite_hash)
teuthology_branch, teuthology_sha1 = self.choose_teuthology_branch()


Expand Down Expand Up @@ -367,14 +367,27 @@ def choose_suite_branch(self):

def choose_suite_hash(self, suite_branch):
suite_repo_name = self.suite_repo_name
suite_repo_project_or_url = self.args.suite_repo or 'ceph-qa-suite'
suite_hash = util.git_ls_remote(
suite_repo_project_or_url,
suite_branch
)
if not suite_hash:
exc = BranchNotFoundError(suite_branch, suite_repo_name)
util.schedule_fail(message=str(exc), name=self.name, dry_run=self.args.dry_run)
suite_hash = None
if self.args.suite_sha1:
suite_hash = self.args.suite_sha1
if self.args.validate_sha1:
suite_hash = util.git_validate_sha1(suite_repo_name, suite_hash)
if not suite_hash:
exc = CommitNotFoundError(
self.args.suite_sha1,
'%s.git' % suite_repo_name
)
util.schedule_fail(message=str(exc), name=self.name, dry_run=self.args.dry_run)
log.info("suite sha1 explicitly supplied")
else:
suite_repo_project_or_url = self.args.suite_repo or 'ceph-qa-suite'
suite_hash = util.git_ls_remote(
suite_repo_project_or_url,
suite_branch
)
if not suite_hash:
exc = BranchNotFoundError(suite_branch, suite_repo_name)
util.schedule_fail(message=str(exc), name=self.name, dry_run=self.args.dry_run)
log.info("%s branch: %s %s", suite_repo_name, suite_branch, suite_hash)
return suite_hash

Expand Down
4 changes: 2 additions & 2 deletions teuthology/suite/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
CONTAINER_FLAVOR = 'default'


def fetch_repos(branch, test_name, dry_run):
def fetch_repos(branch, test_name, dry_run, commit=None):
"""
Fetch the suite repo (and also the teuthology repo) so that we can use it
to build jobs. Repos are stored in ~/src/.
Expand All @@ -49,7 +49,7 @@ def fetch_repos(branch, test_name, dry_run):
# We use teuthology's main branch in all cases right now
if config.teuthology_path is None:
fetch_teuthology('main')
suite_repo_path = fetch_qa_suite(branch)
suite_repo_path = fetch_qa_suite(branch, commit)
except BranchNotFoundError as exc:
schedule_fail(message=str(exc), name=test_name, dry_run=dry_run)
return suite_repo_path
Expand Down

0 comments on commit b7eaa32

Please sign in to comment.