| Index: appengine/swarming/ui/res/imp/taskpage/task-page.html
|
| diff --git a/appengine/swarming/ui/res/imp/taskpage/task-page.html b/appengine/swarming/ui/res/imp/taskpage/task-page.html
|
| index ffe8c409564119fa11acf50e4eef87c8c65c7be9..6e5de535369522dd93a135cd46bd8eb75828983c 100644
|
| --- a/appengine/swarming/ui/res/imp/taskpage/task-page.html
|
| +++ b/appengine/swarming/ui/res/imp/taskpage/task-page.html
|
| @@ -81,6 +81,10 @@
|
| padding: 0 5px;
|
| }
|
|
|
| + .reproduce {
|
| + margin-left: 5px;
|
| + }
|
| +
|
| .tabbed {
|
| border: 3px solid #1F78B4;
|
| margin-left: 5px;
|
| @@ -450,6 +454,21 @@
|
| </tr>
|
| </table>
|
| </template>
|
| +
|
| + <div class="title">Reproducing the task locally</div>
|
| + <div class="reproduce">
|
| + <div>Download inputs files into directory <i>foo</i>:</div>
|
| + <div class="code"> python isolateserver.py download -I [[_request.properties.inputs_ref.isolatedserver]] --namespace [[_request.properties.inputs_ref.namespace]] -s [[_request.properties.inputs_ref.isolated]] --target foo</div>
|
| + <br>
|
| + <div>Run this task locally:</div>
|
| + <div class="code"> python swarming.py reproduce -S [[_host_url]] [[task_id]]</div>
|
| + <br>
|
| + <div>Download output results into directory <i>foo</i>:</div>
|
| + <div class="code"> python swarming.py collect -S [[_host_url]] --task-output-dir=foo [[task_id]]</div>
|
| + <br>
|
| + <div>Looking for <i>swarming.py</i>?</div>
|
| + <div class="code"> git clone https://github.com/luci/client-py</div>
|
| + </div>
|
| </div>
|
|
|
| <div class="flex right" hidden$="[[_not(_task_exists)]]">
|
| @@ -489,7 +508,7 @@
|
|
|
| <paper-dialog id="prompt" modal on-iron-overlay-closed="_promptClosed">
|
| <h2>Are you sure?</h2>
|
| - <div>Are you sure you want to [[_dialogPrompt]]?</div>
|
| + <div>Are you sure you want to [[_dialog_prompt]]?</div>
|
| <div class="buttons">
|
| <paper-button dialog-dismiss autofocus>No</paper-button>
|
| <paper-button dialog-confirm>Yes</paper-button>
|
| @@ -520,10 +539,16 @@
|
| type: String,
|
| },
|
|
|
| - _dialogPrompt: {
|
| + _dialog_prompt: {
|
| type: String,
|
| value: "",
|
| },
|
| + _host_url: {
|
| + type: String,
|
| + value: function(){
|
| + return window.location.hostname;
|
| + }
|
| + },
|
| _refresh_interval: {
|
| type: Number,
|
| },
|
| @@ -680,7 +705,7 @@
|
|
|
| _promptClosed: function(e) {
|
| if (e.detail.confirmed) {
|
| - if (this._dialogPrompt.startsWith("cancel")) {
|
| + if (this._dialog_prompt.startsWith("cancel")) {
|
| this._cancelTask();
|
| } else {
|
| this._retryTask();
|
| @@ -689,12 +714,12 @@
|
| },
|
|
|
| _promptCancel: function() {
|
| - this.set("_dialogPrompt", "cancel task "+this.task_id);
|
| + this.set("_dialog_prompt", "cancel task "+this.task_id);
|
| this.$.prompt.open();
|
| },
|
|
|
| _promptRetry: function() {
|
| - this.set("_dialogPrompt", "retry task "+this.task_id);
|
| + this.set("_dialog_prompt", "retry task "+this.task_id);
|
| this.$.prompt.open();
|
| },
|
|
|
|
|