Page MenuHomePhabricator

scap deploy-promote depends on Toolforge service
Open, Needs TriagePublic

Description

Running scap deploy-promote group0 this morning failed preventing train progress (T333922):

error
09:18:37 deploy-promote failed: <HTTPError> 500 Server Error: Internal Server Error for url: https://train-blockers.toolforge.org/api.php
stacktrace
hashar@deploy2002:/srv/mediawiki-staging$ scap deploy-promote group0
Promote group0 from 1.41.0-wmf.2/1.41.0-wmf.3 to 1.41.0-wmf.3 (y/n): y
09:18:37 Unhandled error:
Traceback (most recent call last):
  File "/var/lib/scap/scap/lib/python3.7/site-packages/scap/cli.py", line 532, in run
    exit_status = app.main(app.extra_arguments)
  File "/var/lib/scap/scap/lib/python3.7/site-packages/scap/deploy_promote.py", line 98, in main
    self._update_versions()
  File "/var/lib/scap/scap/lib/python3.7/site-packages/scap/deploy_promote.py", line 127, in _update_versions
    self._set_messages()
  File "/var/lib/scap/scap/lib/python3.7/site-packages/scap/deploy_promote.py", line 151, in _set_messages
    train_info = self.get_current_train_info()
  File "/var/lib/scap/scap/lib/python3.7/site-packages/scap/cli.py", line 476, in get_current_train_info
    return utils.get_current_train_info(self.config["train_blockers_url"], self.config["web_proxy"])
  File "/var/lib/scap/scap/lib/python3.7/site-packages/scap/utils.py", line 1122, in get_current_train_info
    resp.raise_for_status()
  File "/var/lib/scap/scap/lib/python3.7/site-packages/requests/models.py", line 1021, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 500 Server Error: Internal Server Error for url: https://train-blockers.toolforge.org/api.php
09:18:37 deploy-promote failed: <HTTPError> 500 Server Error: Internal Server Error for url: https://train-blockers.toolforge.org/api.php

We should catch errors issued when querying the train-blocker.

If it is being run interactively we could offer the user to manually file the blocking task (optionally that could be yet another option to scap backport). When not running interactively (I think that is the case for the stage-train script?), no question should be asked.