Changeset 240977 in webkit


Ignore:
Timestamp:
Feb 5, 2019 9:21:24 AM (5 years ago)
Author:
aakash_jain@apple.com
Message:

[ews-app] Add method to save BuilderMapping to database
https://bugs.webkit.org/show_bug.cgi?id=194264

Reviewed by Lucas Forschler.

  • BuildSlaveSupport/ews-app/ews/models/buildermapping.py:

(BuilderMapping.str):
(BuilderMapping):
(BuilderMapping.save_mapping):
(BuilderMapping.update_mapping):
(BuilderMapping.get_existing_mapping):
(BuilderMapping.is_valid_mapping):

Location:
trunk/Tools
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Tools/BuildSlaveSupport/ews-app/ews/models/buildermapping.py

    r240976 r240977  
    2323from __future__ import unicode_literals
    2424
     25import logging
     26
    2527from django.db import models
     28from ews.config import ERR_UNEXPECTED, SUCCESS
     29import ews.common.util as util
     30
     31_log = logging.getLogger(__name__)
    2632
    2733
     
    3440
    3541    def __str__(self):
    36         return "{}: {}".format(self.builder_id, self.name)
     42        return "{}: {}".format(self.builder_id, self.display_name)
     43
     44    @classmethod
     45    def save_mapping(cls, builder_id, builder_name, display_name):
     46        if not BuilderMapping.is_valid_mapping(builder_id, builder_name, display_name):
     47            return ERR_UNEXPECTED
     48
     49        mapping = BuilderMapping.get_existing_mapping(builder_id)
     50        if mapping:
     51            # If the mapping is updated, e.g.: display name changed.
     52            return BuilderMapping.update_mapping(mapping, builder_id, builder_name, display_name)
     53
     54        BuilderMapping(builder_id, builder_name, display_name).save()
     55        _log.info('Saved mapping for builder_id: {}, name: {}, display_name: {}'.format(builder_id, builder_name, display_name))
     56        return SUCCESS
     57
     58    @classmethod
     59    def update_mapping(cls, mapping, builder_id, builder_name, display_name):
     60        if mapping.builder_id != builder_id:
     61            _log.error('builder_id {} does not match with builder_id {}. Ignoring new data.'.format(mapping.builder_id, builder_id))
     62            return ERR_UNEXPECTED
     63
     64        if mapping.builder_name == builder_name and mapping.display_name == display_name:
     65            _log.debug('Mapping already exist for builder_id: {}'.format(builder_id))
     66            return SUCCESS
     67
     68        mapping.builder_name = builder_name
     69        mapping.display_name = display_name
     70        mapping.save(update_fields=['builder_name', 'display_name'])
     71        _log.info('Updated mapping for builder_id: {}, name: {}, display_name: {}'.format(builder_id, builder_name, display_name))
     72        return SUCCESS
     73
     74    @classmethod
     75    def get_existing_mapping(cls, builder_id):
     76        try:
     77            return BuilderMapping.objects.get(builder_id=builder_id)
     78        except:
     79            return None
     80
     81    @classmethod
     82    def is_valid_mapping(cls, builder_id, builder_name, display_name):
     83        if not util.is_valid_id(builder_id):
     84            return False
     85        return True
  • trunk/Tools/ChangeLog

    r240976 r240977  
     12019-02-05  Aakash Jain  <aakash_jain@apple.com>
     2
     3        [ews-app] Add method to save BuilderMapping to database
     4        https://bugs.webkit.org/show_bug.cgi?id=194264
     5
     6        Reviewed by Lucas Forschler.
     7
     8        * BuildSlaveSupport/ews-app/ews/models/buildermapping.py:
     9        (BuilderMapping.__str__):
     10        (BuilderMapping):
     11        (BuilderMapping.save_mapping):
     12        (BuilderMapping.update_mapping):
     13        (BuilderMapping.get_existing_mapping):
     14        (BuilderMapping.is_valid_mapping):
     15
    1162019-02-05  Aakash Jain  <aakash_jain@apple.com>
    217
Note: See TracChangeset for help on using the changeset viewer.