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:
Sunil G 2019-08-11 11:46:47 +05:30
parent a7bc09c596
commit 02b4635ff0
3 changed files with 54 additions and 35 deletions

View File

@ -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')
}); });

View File

@ -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;
})
}); });
}, },

View File

@ -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>