![]() |
Belle II Software
release-05-02-19
|
Public Member Functions | |
def | __init__ (self, db, running, staging, valid_from, mode) |
def | calculate_update (self) |
def | apply_update (self) |
Private Member Functions | |
def | _check_state (self, tagname, taginfo, required) |
def | _check_all (self) |
def | _check_running_tag (self, tagname, payloads) |
def | _check_staging_tag_simple (self, tagname, payloads) |
def | _check_staging_tag (self, tagname, payloads) |
Private Attributes | |
_db | |
Reference to the database object to use for queries. | |
_valid_from | |
First valid run for the update. | |
_mode | |
True if we want to allow payloads in the staging tag to be closed, for example when retireing a payload. | |
_allow_closed | |
Do we allow closed iovs in staging? | |
_fix_closed | |
Do we want to automatically open closed iovs? | |
_staging_coverage | |
Dictionary mapping payload names in the staging tag to the coverage they have in the staging tag, filled by check_staging_tag. | |
_operations | |
Operations for the update, filled by calculate_update() | |
_running_info | |
Globaltag information for the running tag. | |
_staging_info | |
Globaltag information for the staging tag. | |
_running_payloads | |
Payloads currently in the running tag. | |
_staging_payloads | |
Payloads currently in the staging tag. | |
_staging_first_iovs | |
First iov per payload name in staging to not close and open the same revision. | |
Calculate and apply the necessary changes to update a running globaltag For this we take two globaltags: the running one and a staging one containing all the payloads and iovs to be added to the running tag. We then 1. Make sure they are in the correct states (RUNNING and VALIDATED) 2. Make sure all payloads in the running tag start and end (except for open iovs) before the given ``valid_from`` run 3. Make sure the staging tag is overlap and gap free 4. Make all payloads in staging start at either 0,0 or on/after the given ``valid_from`` run 5. Make sure all payloads in staging are unbound unless the mode is ``ALLOW_CLOSED`` or ``FIX_CLOSED``. In case of ``FIX_CLOSED`` extend the last iov to infinity 6. Close all payloads to be updated in the running tag that are open just before the validity in the staging tag.
Definition at line 47 of file runningupdate.py.
|
private |
|
private |
Check that all payloads in the running tag start and end (or are open) before the first valid run for the update
Definition at line 144 of file runningupdate.py.
|
private |
Check if the staging tag is 1. overlap free 2. gap free 3. all payloads are open (unless the mode allows closed payloads) 4. all payloads start at 0,0 or after the first valid run for the update Arguments: tagname (str): Name of the globaltag for error messages payloads (list(conditions_db.PayloadInformation)): List of payloads in the tag
Definition at line 200 of file runningupdate.py.
|
private |
Extra simple case where we want to have a very simple staging tag just consisting of (0,0,-1,-1) iovs, one per payload
Definition at line 171 of file runningupdate.py.
|
private |
Check the state of a globaltag given the tag information object returned by the database 1) that it's found and 2) that it has the same state as in ``required`` Parameters: tagname: name of the tag for error messages taginfo: tag information returned from the database, None if the tag could not be found required: required state for the tag. Raises: an `RunningTagUpdaterError` if any condition is not fulfilled
Definition at line 112 of file runningupdate.py.
def apply_update | ( | self | ) |
Apply a previously calculated update to the globaltag Warning: This action cannot be undone, only call it after checking the operations returned by the calculation of the update
Definition at line 346 of file runningupdate.py.
def calculate_update | ( | self | ) |
Calculate the operations needed to merge staging into the running base tag
Definition at line 297 of file runningupdate.py.