WebKit Bugzilla
Attachment 360333 Details for
Bug 193890
: [ews-app] Add method to save Step data to database
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Proposed patch
0004-ews-app-Add-method-to-save-Step-data-to-database.patch (text/plain), 4.19 KB, created by
Aakash Jain
on 2019-01-28 04:47:45 PST
(
hide
)
Description:
Proposed patch
Filename:
MIME Type:
Creator:
Aakash Jain
Created:
2019-01-28 04:47:45 PST
Size:
4.19 KB
patch
obsolete
>From 00c0e1aba0217c4f3cc4f685f707700bda17c96b Mon Sep 17 00:00:00 2001 >From: Aakash Jain <aakash_jain@apple.com> >Date: Mon, 28 Jan 2019 07:38:47 -0500 >Subject: [PATCH 4/4] [ews-app] Add method to save Step data to database > https://bugs.webkit.org/show_bug.cgi?id=193890 > >Reviewed by NOBODY (OOPS!). > >* BuildSlaveSupport/ews-app/ews/models/step.py: >(Step.save_step): Method to save step data. >(Step.update_step): Method to update step data. >(Step.get_existing_step): Method to fetch existing step from database. >(Step.is_valid_result): Method to validate valid step result. >--- > .../ews-app/ews/models/step.py | 51 +++++++++++++++++++ > Tools/ChangeLog | 13 +++++ > 2 files changed, 64 insertions(+) > >diff --git a/Tools/BuildSlaveSupport/ews-app/ews/models/step.py b/Tools/BuildSlaveSupport/ews-app/ews/models/step.py >index 37a38b94659..e5d6bb34411 100644 >--- a/Tools/BuildSlaveSupport/ews-app/ews/models/step.py >+++ b/Tools/BuildSlaveSupport/ews-app/ews/models/step.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.build import Build >+import ews.common.util as util >+ >+_log = logging.getLogger(__name__) > > > class Step(models.Model): >@@ -38,3 +44,48 @@ class Step(models.Model): > > def __str__(self): > return str(self.step_id) >+ >+ @classmethod >+ def save_step(cls, step_id, build_id, result, state_string, started_at, complete_at=None): >+ if not Step.is_valid_result(step_id, build_id, result, state_string, started_at, complete_at): >+ return ERR_UNEXPECTED >+ >+ step = Step.get_existing_step(step_id) >+ if step: >+ # If the stepd data is already present in database, update it, e.g.: step complete event. >+ return Step.update_step(step, step_id, build_id, result, state_string, started_at, complete_at) >+ >+ # Save the new step data, e.g.: step start event. >+ Step(step_id, build_id, result, state_string, started_at, complete_at).save() >+ _log.debug('Saved step {} in database for build: {}'.format(step_id, build_id)) >+ return SUCCESS >+ >+ @classmethod >+ def update_step(cls, step, step_id, build_id, result, state_string, started_at, complete_at): >+ if step.step_id != step_id: >+ _log.error('step_id {} does not match with step_id {}. Ignoring new data.'.format(step.step_id, step_id)) >+ return ERR_UNEXPECTED >+ if step.build_id != build_id: >+ _log.error('build_id {} does not match with build_id {}. Ignoring new data.'.format(step.build_id, build_id)) >+ return ERR_UNEXPECTED >+ step.result = result >+ step.state_string = state_string >+ step.started_at = started_at >+ step.complete_at = complete_at >+ step.save(update_fields=['result', 'state_string', 'started_at', 'complete_at']) >+ _log.info('Updated step {} in database for build: {}'.format(step_id, build_id)) >+ return SUCCESS >+ >+ @classmethod >+ def get_existing_step(cls, step_id): >+ try: >+ return Step.objects.get(step_id=step_id) >+ except: >+ return None >+ >+ @classmethod >+ def is_valid_result(cls, step_id, build_id, result, state_string, started_at, complete_at): >+ if not (util.is_valid_id(step_id) and util.is_valid_id(build_id)): >+ return False >+ >+ return True >diff --git a/Tools/ChangeLog b/Tools/ChangeLog >index e05c0b662a1..61619efe434 100644 >--- a/Tools/ChangeLog >+++ b/Tools/ChangeLog >@@ -1,3 +1,16 @@ >+2019-01-28 Aakash Jain <aakash_jain@apple.com> >+ >+ [ews-app] Add method to save Step data to database >+ https://bugs.webkit.org/show_bug.cgi?id=193890 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * BuildSlaveSupport/ews-app/ews/models/step.py: >+ (Step.save_step): Method to save step data. >+ (Step.update_step): Method to update step data. >+ (Step.get_existing_step): Method to fetch existing step from database. >+ (Step.is_valid_result): Method to validate valid step result. >+ > 2019-01-28 Aakash Jain <aakash_jain@apple.com> > > [ews-app] Allow certain fields to be empty >-- >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 193890
: 360333