YARN-9729. [UI2] Fix error message for logs when ATSv2 is offline. Contributed by Zoltan Siegl.
(cherry picked from commit 1c5b28659f
)
This commit is contained in:
parent
a7bc09c596
commit
02b4635ff0
|
@ -263,5 +263,12 @@ export default Ember.Controller.extend({
|
||||||
isLogAggregationNotSucceeded: Ember.computed("model.app", function() {
|
isLogAggregationNotSucceeded: Ember.computed("model.app", function() {
|
||||||
const logAggregationStatus = this.get("model.app.logAggregationStatus");
|
const logAggregationStatus = this.get("model.app.logAggregationStatus");
|
||||||
return logAggregationStatus !== "SUCCEEDED";
|
return logAggregationStatus !== "SUCCEEDED";
|
||||||
})
|
}),
|
||||||
|
|
||||||
|
isTimelineUnHealthy: function() {
|
||||||
|
if (this.model && this.model.timelineHealth) {
|
||||||
|
return this.model.timelineHealth.get('isTimelineUnHealthy');
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}.property('model.timelineHealth')
|
||||||
});
|
});
|
||||||
|
|
|
@ -31,7 +31,10 @@ export default AbstractRoute.extend(AppAttemptMixin, {
|
||||||
attempts: this.fetchAttemptListFromRMorATS(app_id, this.store).catch(function() {
|
attempts: this.fetchAttemptListFromRMorATS(app_id, this.store).catch(function() {
|
||||||
return [];
|
return [];
|
||||||
}),
|
}),
|
||||||
app: this.fetchAppInfoFromRMorATS(app_id, this.store)
|
app: this.fetchAppInfoFromRMorATS(app_id, this.store),
|
||||||
|
timelineHealth: this.store.queryRecord('timeline-health', {}).catch(function() {
|
||||||
|
return null;
|
||||||
|
})
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -32,43 +32,52 @@
|
||||||
<img src="assets/images/spinner.gif" alt="Loading...">
|
<img src="assets/images/spinner.gif" alt="Loading...">
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{#if attemptList}}
|
{{#if isTimelineUnHealthy}}
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-6">
|
<div class="col-md-8 col-md-offset-2 alert alert-warning text-center">
|
||||||
<label>Choose attempt to fetch containers</label>
|
<span class="glyphicon glyphicon-warning-sign" style="padding-right: 10px"></span>
|
||||||
<div>
|
<span>Logs are unavailable because Application Timeline Service seems unhealthy.</span>
|
||||||
<select class="js-fetch-attempt-containers" onchange={{action "showContainersForAttemptId" value="target.value"}} style="max-width:350px;">
|
|
||||||
<option value="" selected={{eq selectedAttemptId ''}}>None</option>
|
|
||||||
{{#each attemptList as |attempt|}}
|
|
||||||
<option value="{{attempt.id}}" selected={{eq selectedAttemptId attempt.id}}>{{attempt.id}}</option>
|
|
||||||
{{/each}}
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
{{#if attemptContainerList}}
|
|
||||||
<div class="col-md-6">
|
|
||||||
<label>Choose container to fetch logs</label>
|
|
||||||
<div>
|
|
||||||
<select class="js-fetch-logs-containers" onchange={{action "showLogFilesForContainerId" value="target.value"}} style="max-width:350px">
|
|
||||||
<option value="" selected={{eq selectedContainerId ''}}>None</option>
|
|
||||||
{{#each attemptContainerList as |container|}}
|
|
||||||
<option value="{{container.id}}" selected={{eq selectedContainerId container.id}}>{{container.id}}</option>
|
|
||||||
{{/each}}
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{else}}
|
|
||||||
{{#if (and selectedAttemptId (not _isLoadingTopPanel))}}
|
|
||||||
<div class="col-md-4">
|
|
||||||
<h4 class="text-center" style="margin-top:25px;">No container data available!</h4>
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
{{/if}}
|
|
||||||
</div>
|
</div>
|
||||||
{{else}}
|
{{else}}
|
||||||
<div class="col-md-12">
|
{{#if attemptList}}
|
||||||
<h4 class="text-center">No data available!</h4>
|
<div class="row">
|
||||||
</div>
|
<div class="col-md-6">
|
||||||
|
<label>Choose attempt to fetch containers</label>
|
||||||
|
<div>
|
||||||
|
<select class="js-fetch-attempt-containers" onchange={{action "showContainersForAttemptId" value="target.value"}} style="max-width:350px;">
|
||||||
|
<option value="" selected={{eq selectedAttemptId ''}}>None</option>
|
||||||
|
{{#each attemptList as |attempt|}}
|
||||||
|
<option value="{{attempt.id}}" selected={{eq selectedAttemptId attempt.id}}>{{attempt.id}}</option>
|
||||||
|
{{/each}}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{#if attemptContainerList}}
|
||||||
|
<div class="col-md-6">
|
||||||
|
<label>Choose container to fetch logs</label>
|
||||||
|
<div>
|
||||||
|
<select class="js-fetch-logs-containers" onchange={{action "showLogFilesForContainerId" value="target.value"}} style="max-width:350px">
|
||||||
|
<option value="" selected={{eq selectedContainerId ''}}>None</option>
|
||||||
|
{{#each attemptContainerList as |container|}}
|
||||||
|
<option value="{{container.id}}" selected={{eq selectedContainerId container.id}}>{{container.id}}</option>
|
||||||
|
{{/each}}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{else}}
|
||||||
|
{{#if (and selectedAttemptId (not _isLoadingTopPanel))}}
|
||||||
|
<div class="col-md-4">
|
||||||
|
<h4 class="text-center" style="margin-top:25px;">No container data available!</h4>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
||||||
|
{{else}}
|
||||||
|
<div class="col-md-12">
|
||||||
|
<h4 class="text-center">No data available!</h4>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in New Issue