Add re run support for checks in the table
Change-Id: Id3b574ff4d8c67dbe7a7ecb331ffba74bc1b27c3
diff --git a/gr-checks/gr-checks-item.html b/gr-checks/gr-checks-item.html
index 602cffb..374f76b 100644
--- a/gr-checks/gr-checks-item.html
+++ b/gr-checks/gr-checks-item.html
@@ -38,20 +38,21 @@
<td>[[_startTime]]</td>
<td>[[_duration]]</td>
<td>
- <a href$="[[check.url]]" target="_blank" class="log">
- <gr-button link no-uppercase disabled="[[!check.url]]">
- View log
- </gr-button>
- </a>
-<!-- disabling re-run button until the API for rerun is ready-->
-<!-- <gr-button-->
-<!-- link-->
-<!-- no-uppercase-->
-<!-- on-tap="handleClick">-->
-<!-- Re-run-->
-<!-- </gr-button>-->
- </td>
- <td>[[check.checker_description]]</td>
+ <a href$="[[check.url]]" target="_blank" class="log">
+ <gr-button link no-uppercase disabled="[[!check.url]]">
+ View log
+ </gr-button>
+ </a>
+ </td>
+ <td>
+ <gr-button
+ link
+ no-uppercase
+ on-tap="_handleReRunClicked">
+ Re-run
+ </gr-button>
+ </td>
+ <td>[[check.checker_description]]</td>
</template>
<script src="gr-checks-item.js"></script>
</dom-module>
diff --git a/gr-checks/gr-checks-item.js b/gr-checks/gr-checks-item.js
index 2c0d98b..0f04f56 100644
--- a/gr-checks/gr-checks-item.js
+++ b/gr-checks/gr-checks-item.js
@@ -29,7 +29,6 @@
/** @type {Defs.Check} */
check: Object,
/** @type {function(string): !Promise<!Object>} */
- retryCheck: Function,
_startTime: {
type: String,
computed: '_computeStartTime(check)',
@@ -49,6 +48,13 @@
},
/**
+ * Fired when the retry check button is pressed.
+ *
+ * @event retry-check
+ */
+
+
+ /**
* @param {!Defs.Check} check
* @return {string}
*/
@@ -87,9 +93,9 @@
_computeRequiredForMerge(check) {
return (check.blocking && check.blocking.length === 0) ? "Optional" : "Required";
},
- handleClick(event) {
- event.preventDefault();
- this.retryCheck(this.check.checker_uuid);
+ _handleReRunClicked(event) {
+ this.fire('retry-check',{uuid: this.check.checker_uuid},
+ {bubbles: false});
},
});
diff --git a/gr-checks/gr-checks-view.html b/gr-checks/gr-checks-view.html
index ee22cbb..40b6390 100644
--- a/gr-checks/gr-checks-view.html
+++ b/gr-checks/gr-checks-view.html
@@ -136,26 +136,27 @@
<th class="topHeader">Started</th>
<th class="topHeader">Duration</th>
<th class="topHeader"><!-- actions --></th>
+ <th class="topHeader"><!-- re-run --></th>
<th class="topHeader">Description</th>
</tr>
</thead>
<tbody>
<template is="dom-repeat" items="[[_checks]]" as="check">
<tr>
- <gr-checks-item on-toggle-check-message="_toggleCheckMessage"
- check="[[check]]" retry-check="[[retryCheck]]">
+ <gr-checks-item on-retry-check="_handleRetryCheck" on-toggle-check-message="_toggleCheckMessage"
+ check="[[check]]">
</gr-checks-item>
</tr>
<template is="dom-if" if="[[check.showCheckMessage]]">
<tr>
- <td colspan="9" class="check-message-heading">
+ <td colspan="10" class="check-message-heading">
<span class="message-heading">
Message
</span>
</td>
</tr>
<tr>
- <td colspan="9" class="check-message">
+ <td colspan="10" class="check-message">
<span class="message"> [[check.message]] </span>
</td>
</tr>
diff --git a/gr-checks/gr-checks-view.js b/gr-checks/gr-checks-view.js
index c312163..3aa88b8 100644
--- a/gr-checks/gr-checks-view.js
+++ b/gr-checks/gr-checks-view.js
@@ -47,7 +47,6 @@
/** @type {function(string): !Promise<Boolean>} */
isConfigured: Function,
/** @type {function(string, string): !Promise<!Object>} */
- retryCheck: Function,
pluginRestApi: Object,
_checks: Object,
_status: {
@@ -119,6 +118,22 @@
return a.checker_name.localeCompare(b.checker_name);
},
+ _handleRetryCheck(e) {
+ const uuid = e.detail.uuid;
+ const retryCheck = (change, revision, uuid) => {
+ return this.pluginRestApi.post(
+ '/changes/' + change + '/revisions/' + revision + '/checks/' + uuid + '/rerun'
+ )
+ }
+ retryCheck(this.change._number, this.revision._number, uuid).then(
+ res => {
+ this._fetchChecks(this.change, this.revision, this.getChecks);
+ }, e => {
+ console.error(e);
+ }
+ )
+ },
+
/**
* @param {!Defs.Change} change
* @param {!Defs.Revision} revision
diff --git a/gr-checks/gr-checks.html b/gr-checks/gr-checks.html
index 2108121..ceed087 100644
--- a/gr-checks/gr-checks.html
+++ b/gr-checks/gr-checks.html
@@ -39,8 +39,6 @@
'gr-checks-view').onAttached(
view => {
view['isConfigured'] = (repository) => Promise.resolve(true);
- // TODO(brohlfs): Implement retry.
- view['retryCheck'] = (buildId) => undefined;
view['getChecks'] = getChecks;
});
});