1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
|
Steps connector
~~~~~~~~~~~~~~~
.. py:module:: buildbot.db.steps
.. index:: double: Steps; DB Connector Component
.. py:class:: StepsConnectorComponent
This class handles the steps performed within the context of a build.
Within a build, each step has a unique name and a unique 0-based number.
An instance of this class is available at ``master.db.steps``.
.. index:: stepdict, stepid
Steps are indexed by *stepid* and are represented by a :class:`StepModel` dataclass with the following fields:
* ``id`` (the step ID, globally unique)
* ``number`` (the step number, unique only within the build)
* ``name`` (the step name, an 50-character :ref:`identifier <type-identifier>` unique only within the build)
* ``buildid`` (the ID of the build containing this step)
* ``started_at`` (datetime at which this step began)
* ``locks_atquired_at`` (datetime at which this step acquired or None if the step has not yet acquired locks)
* ``complete_at`` (datetime at which this step finished, or None if it is ongoing)
* ``state_string`` (short string describing the step's state)
* ``results`` (results of this step; see :ref:`Build-Result-Codes`)
* ``urls`` (list of URLs produced by this step. Each urls is stored as a :class:`UrlModel` dataclass)
* ``hidden`` (true if the step should be hidden in status displays)
Urls are represented by a :class:`UrlModel` dataclass with the following fields:
* ``name``
* ``url``
.. py:method:: getStep(stepid=None, buildid=None, number=None, name=None)
:param integer stepid: the step id to retrieve
:param integer buildid: the build from which to get the step
:param integer number: the step number
:param name: the step name
:type name: 50-character :ref:`identifier <type-identifier>`
:returns: :class:`StepModel` or ``None`` via Deferred
Get a single step.
The step can be specified by:
* ``stepid`` alone
* ``buildid`` and ``number``, the step number within that build
* ``buildid`` and ``name``, the unique step name within that build
.. py:method:: getSteps(buildid)
:param integer buildid: the build from which to get the step
:returns: list of :class:`StepModel`, sorted by number, via Deferred
Get all steps in the given build, ordered by number.
.. py:method:: addStep(self, buildid, name, state_string)
:param integer buildid: the build to which to add the step
:param name: the step name
:type name: 50-character :ref:`identifier <type-identifier>`
:param unicode state_string: the initial state of the step
:returns: tuple of step ID, step number, and step name, via Deferred
Add a new step to a build.
The given name will be used if it is unique; otherwise, a unique numerical suffix will be appended.
.. py:method:: setStepStateString(stepid, state_string):
:param integer stepid: step ID
:param unicode state_string: updated state of the step
:returns: Deferred
Update the state string for the given step.
.. py:method:: finishStep(stepid, results, hidden)
:param integer stepid: step ID
:param integer results: step result
:param bool hidden: true if the step should be hidden
:returns: Deferred
Mark the given step as finished, with ``complete_at`` set to the current time.
.. note::
This update is done unconditionally, even if the steps are already finished.
.. py:method:: addURL(self, stepid, name, url)
:param integer stepid: the stepid to add the url.
:param string name: the url name
:param string url: the actual url
:returns: None via deferred
Add a new url to a step.
The new url is added to the list of urls.
|