WebKit Bugzilla
Attachment 359931 Details for
Bug 193735
: [ews-app] Add method to save Build data to database
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Proposed path
0001-ews-app-Add-method-to-save-Build-data-to-database.patch (text/plain), 4.40 KB, created by
Aakash Jain
on 2019-01-23 12:58:35 PST
(
hide
)
Description:
Proposed path
Filename:
MIME Type:
Creator:
Aakash Jain
Created:
2019-01-23 12:58:35 PST
Size:
4.40 KB
patch
obsolete
>From 758ba17142d123a8f0ca51dbf36d36ed82352c7e Mon Sep 17 00:00:00 2001 >From: Aakash Jain <aakash_jain@apple.com> >Date: Wed, 23 Jan 2019 15:55:54 -0500 >Subject: [PATCH] [ews-app] Add method to save Build data to database > https://bugs.webkit.org/show_bug.cgi?id=193735 > >Reviewed by NOBODY (OOPS!). > >* BuildSlaveSupport/ews-app/ews/models/build.py: >(Build.save_build): Method to save build information to database. >(Build.get_existing_build_info): Method to fetch existing build info from database. >(Build.is_valid_result): Method to validate build result. >* BuildSlaveSupport/ews-app/ews/common/util.py: >(is_valid_int_id): Method to validate valid id. >--- > .../ews-app/ews/common/util.py | 7 ++++ > .../ews-app/ews/models/build.py | 37 +++++++++++++++++++ > Tools/ChangeLog | 14 +++++++ > 3 files changed, 58 insertions(+) > >diff --git a/Tools/BuildSlaveSupport/ews-app/ews/common/util.py b/Tools/BuildSlaveSupport/ews-app/ews/common/util.py >index 21991383530..c7c215aaf3c 100644 >--- a/Tools/BuildSlaveSupport/ews-app/ews/common/util.py >+++ b/Tools/BuildSlaveSupport/ews-app/ews/common/util.py >@@ -41,3 +41,10 @@ def fetch_data_from_url(url): > _log.error('Accessed {url} with unexpected status code {status_code}.'.format(url=url, status_code=response.status_code)) > return None > return response >+ >+ >+def is_valid_int_id(id): >+ if not id or type(id) != int or id < 0: >+ _log.warn('Invalid id: {}'.format(id)) >+ return False >+ return True >diff --git a/Tools/BuildSlaveSupport/ews-app/ews/models/build.py b/Tools/BuildSlaveSupport/ews-app/ews/models/build.py >index 46b4b278c30..0c0bf9a6ca4 100644 >--- a/Tools/BuildSlaveSupport/ews-app/ews/models/build.py >+++ b/Tools/BuildSlaveSupport/ews-app/ews/models/build.py >@@ -22,8 +22,14 @@ > > from __future__ import unicode_literals > >+import logging >+ > from django.db import models >+from ews.config import ERR_UNEXPECTED, SUCCESS > from ews.models.patch import Patch >+import ews.common.util as util >+ >+_log = logging.getLogger(__name__) > > > class Build(models.Model): >@@ -40,3 +46,34 @@ class Build(models.Model): > > def __str__(self): > return str(self.buildid) >+ >+ @classmethod >+ def save_build(cls, patch_id, buildid, builderid, number, result, state_string, started_at, complete_at=None): >+ if not Build.is_valid_result(patch_id, buildid, builderid, number, result, state_string, started_at, complete_at): >+ return ERR_UNEXPECTED >+ >+ # If the build data is already present in database, update it. >+ build = Build.get_existing_build_info(buildid) >+ if build: >+ build.delete() >+ Build(patch_id, buildid, builderid, number, result, state_string, started_at, complete_at).save() >+ _log.info('Saved build {} in database for patch_id: {}'.format(buildid, patch_id)) >+ return SUCCESS >+ >+ @classmethod >+ def get_existing_build_info(cls, buildid): >+ try: >+ return Build.objects.get(buildid=buildid) >+ except: >+ return None >+ >+ @classmethod >+ def is_valid_result(cls, patch_id, buildid, builderid, number, result, state_string, started_at, complete_at=None): >+ if not (util.is_valid_int_id(patch_id) and util.is_valid_int_id(buildid) and util.is_valid_int_id(builderid) and util.is_valid_int_id(number)): >+ return False >+ >+ if not Patch.is_existing_patch_id(patch_id): >+ _log.error('patch_id: {} does not exist in database'.format(patch_id)) >+ return False >+ >+ return True >diff --git a/Tools/ChangeLog b/Tools/ChangeLog >index 228fcda711c..ba413efcea9 100644 >--- a/Tools/ChangeLog >+++ b/Tools/ChangeLog >@@ -1,3 +1,17 @@ >+2019-01-23 Aakash Jain <aakash_jain@apple.com> >+ >+ [ews-app] Add method to save Build data to database >+ https://bugs.webkit.org/show_bug.cgi?id=193735 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * BuildSlaveSupport/ews-app/ews/models/build.py: >+ (Build.save_build): Method to save build information to database. >+ (Build.get_existing_build_info): Method to fetch existing build info from database. >+ (Build.is_valid_result): Method to validate build result. >+ * BuildSlaveSupport/ews-app/ews/common/util.py: >+ (is_valid_int_id): Method to validate valid id. >+ > 2019-01-23 Aakash Jain <aakash_jain@apple.com> > > [ews-app] Rename ews model buildermappings to buildermapping >-- >2.17.2 (Apple Git-113) >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
lforschler
:
review+
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 193735
:
359931
|
360334