|
@@ -16,19 +16,15 @@
|
|
|
* limitations under the License.
|
|
|
}}
|
|
|
|
|
|
-<div class="row">
|
|
|
- <div class="col-md-12">
|
|
|
- {{app-timeout-bar app=model.app}}
|
|
|
- </div>
|
|
|
+<div class="col-md-12">
|
|
|
+ {{app-timeout-bar app=model.app}}
|
|
|
</div>
|
|
|
|
|
|
{{#if actionResponse}}
|
|
|
- <div class="row">
|
|
|
- <div class="col-md-12">
|
|
|
- <div class="alert alert-dismissible {{if (eq actionResponse.type 'error') 'alert-danger' 'alert-success'}}" role="alert">
|
|
|
- <button class="close" data-dismiss="alert" aria-label="Close" {{action "resetActionResponse"}}><span aria-hidden="true">×</span></button>
|
|
|
- <strong>{{actionResponse.msg}}</strong>
|
|
|
- </div>
|
|
|
+ <div class="col-md-12">
|
|
|
+ <div class="alert alert-dismissible {{if (eq actionResponse.type 'error') 'alert-danger' 'alert-success'}}" role="alert">
|
|
|
+ <button class="close" data-dismiss="alert" aria-label="Close" {{action "resetActionResponse"}}><span aria-hidden="true">×</span></button>
|
|
|
+ <strong>{{actionResponse.msg}}</strong>
|
|
|
</div>
|
|
|
</div>
|
|
|
{{/if}}
|
|
@@ -39,220 +35,95 @@
|
|
|
</div>
|
|
|
{{/if}}
|
|
|
|
|
|
-<div class="row">
|
|
|
- <div class="col-md-12 container-fluid">
|
|
|
- <div class="panel panel-default">
|
|
|
- <div class="panel-heading">
|
|
|
- Basic Info
|
|
|
- {{#if isRunningService}}
|
|
|
- <div class="pull-right" style="display: inline-block; margin: -4px -10px 0 0;">
|
|
|
- <button class="btn btn-sm btn-danger" disabled="{{if isLoading 'disabled'}}" {{action "showStopServiceConfirm"}}> Stop </button>
|
|
|
- <button class="btn btn-sm btn-danger" disabled="{{if isLoading 'disabled'}}" {{action "showDeleteServiceConfirm"}}> Delete </button>
|
|
|
- </div>
|
|
|
- {{/if}}
|
|
|
+{{#if model.app.diagnostics}}
|
|
|
+ <div class="col-md-12">
|
|
|
+ {{#if model.app.isFailed}}
|
|
|
+ <div class="panel panel-danger">
|
|
|
+ <div class="panel-heading">
|
|
|
+ Diagnostics
|
|
|
+ </div>
|
|
|
+ <div class="panel-body">{{model.app.diagnostics}}</div>
|
|
|
</div>
|
|
|
- <div class="x-scroll">
|
|
|
- <table class="display table table-striped table-bordered"
|
|
|
- cellspacing="0" width="100%">
|
|
|
- <thead>
|
|
|
- <tr>
|
|
|
- <th>Application ID</th>
|
|
|
- <th>Name</th>
|
|
|
- <th>User</th>
|
|
|
- <th>Queue</th>
|
|
|
- <th>State</th>
|
|
|
- <th>Final Status</th>
|
|
|
- <th>Start Time</th>
|
|
|
- <th>Elapsed Time</th>
|
|
|
- <th>Finished Time</th>
|
|
|
- <th>Priority</th>
|
|
|
- {{#unless model.serviceName}}
|
|
|
- <th>Progress</th>
|
|
|
- <th>Is Unmanaged AM</th>
|
|
|
- {{/unless}}
|
|
|
- </tr>
|
|
|
- </thead>
|
|
|
-
|
|
|
- <tbody>
|
|
|
- <tr>
|
|
|
- <td>{{model.app.id}}</td>
|
|
|
- <td>{{model.app.appName}}</td>
|
|
|
- <td>{{model.app.user}}</td>
|
|
|
- <td>{{model.app.queue}}</td>
|
|
|
- <td>{{model.app.state}}</td>
|
|
|
- <td>
|
|
|
- <span class={{model.app.finalStatusStyle}}>
|
|
|
- {{model.app.finalStatus}}
|
|
|
- </span>
|
|
|
- </td>
|
|
|
- <td>{{model.app.startTime}}</td>
|
|
|
- <td>{{model.app.formattedElapsedTime}}</td>
|
|
|
- <td>{{model.app.validatedFinishedTs}}</td>
|
|
|
- <td>{{model.app.priority}}</td>
|
|
|
- {{#unless model.serviceName}}
|
|
|
- <td>
|
|
|
- <div class="progress" style="margin-bottom: 0;">
|
|
|
- <div class="progress-bar" role="progressbar"
|
|
|
- aria-valuenow="60" aria-valuemin="0"
|
|
|
- aria-valuemax="100"
|
|
|
- style={{model.app.progressStyle}}>
|
|
|
- {{model.app.progress}}%
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </td>
|
|
|
- <td>{{model.app.unmanagedApplication}}</td>
|
|
|
- {{/unless}}
|
|
|
- </tr>
|
|
|
- </tbody>
|
|
|
- </table>
|
|
|
+ {{else}}
|
|
|
+ <div class="panel panel-default">
|
|
|
+ <div class="panel-heading">
|
|
|
+ Diagnostics
|
|
|
+ </div>
|
|
|
+ <div class="panel-body">{{model.app.diagnostics}}</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
+ {{/if}}
|
|
|
</div>
|
|
|
-</div>
|
|
|
-
|
|
|
-<div class="row">
|
|
|
- {{#if model.app.diagnostics}}
|
|
|
- <div class="col-md-12 container-fluid">
|
|
|
- {{#if model.app.isFailed}}
|
|
|
- <div class="panel panel-danger">
|
|
|
- <div class="panel-heading">
|
|
|
- Diagnostics
|
|
|
- </div>
|
|
|
- <div class="panel-body">{{model.app.diagnostics}}</div>
|
|
|
- </div>
|
|
|
- {{else}}
|
|
|
- <div class="panel panel-default">
|
|
|
- <div class="panel-heading">
|
|
|
- Diagnostics
|
|
|
- </div>
|
|
|
- <div class="panel-body">{{model.app.diagnostics}}</div>
|
|
|
- </div>
|
|
|
- {{/if}}
|
|
|
- </div>
|
|
|
- {{/if}}
|
|
|
-</div>
|
|
|
+{{/if}}
|
|
|
|
|
|
{{#unless model.serviceName}}
|
|
|
- <div class="row">
|
|
|
- <div class="col-md-12 container-fluid">
|
|
|
- <div class="panel panel-default">
|
|
|
- <div class="panel-heading">Outstanding Resource Requests</div>
|
|
|
- <table class="display table table-striped table-bordered"
|
|
|
- cellspacing="0" width="100%">
|
|
|
- <thead>
|
|
|
- <tr>
|
|
|
- <th>Scheduler Key</th>
|
|
|
- <th>Resource Name</th>
|
|
|
- <th>Capability</th>
|
|
|
- <th># Containers</th>
|
|
|
- <th>Relax Locality</th>
|
|
|
- <th>Node Label Expression</th>
|
|
|
- </tr>
|
|
|
- </thead>
|
|
|
- <tbody>
|
|
|
- {{#each model.app.resourceRequests as |request|}}
|
|
|
- <tr>
|
|
|
- <td>{{request.priority}}</td>
|
|
|
- <td>{{request.resourceName}}</td>
|
|
|
- <td><Memory:{{request.capability.memory}};vCores:{{request.capability.virtualCores}}></td>
|
|
|
- <td>{{request.numContainers}}</td>
|
|
|
- <td>{{request.relaxLocality}}</td>
|
|
|
- <td>
|
|
|
- {{#if request.nodeLabelExpression}}
|
|
|
- {{request.nodeLabelExpression}}
|
|
|
- {{else}}
|
|
|
- N/A
|
|
|
- {{/if}}
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- {{else}}
|
|
|
- <div class="panel-body">No data available!</div>
|
|
|
- {{/each}}
|
|
|
- </tbody>
|
|
|
- </table>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-{{/unless}}
|
|
|
-<div class="row">
|
|
|
- <div class="col-md-12 container-fluid">
|
|
|
+ <div class="col-md-12">
|
|
|
<div class="panel panel-default">
|
|
|
- <div class="panel-heading">Scheduling Info</div>
|
|
|
+ <div class="panel-heading">Outstanding Resource Requests</div>
|
|
|
<table class="display table table-striped table-bordered"
|
|
|
- cellspacing="0" width="100%">
|
|
|
+ cellspacing="0" width="100%">
|
|
|
<thead>
|
|
|
<tr>
|
|
|
- <th>Allocated Resource</th>
|
|
|
- <th>Running Containers</th>
|
|
|
- <th>Preempted Resource</th>
|
|
|
- <th>Num Non-AM container preempted</th>
|
|
|
- <th>Num AM container preempted</th>
|
|
|
- <th>Aggregated Resource Usage</th>
|
|
|
+ <th>Scheduler Key</th>
|
|
|
+ <th>Resource Name</th>
|
|
|
+ <th>Capability</th>
|
|
|
+ <th># Containers</th>
|
|
|
+ <th>Relax Locality</th>
|
|
|
+ <th>Node Label Expression</th>
|
|
|
</tr>
|
|
|
</thead>
|
|
|
-
|
|
|
<tbody>
|
|
|
- <tr>
|
|
|
- <td>{{model.app.allocatedResource}}</td>
|
|
|
- <td>{{model.app.runningContainersNumber}}</td>
|
|
|
- <td>{{model.app.preemptedResource}}</td>
|
|
|
- <td>{{model.app.numAMContainerPreempted}}</td>
|
|
|
- <td>{{model.app.numAMContainerPreempted}}</td>
|
|
|
- <td>{{model.app.aggregatedResourceUsage}}</td>
|
|
|
- </tr>
|
|
|
+ {{#each model.app.resourceRequests as |request|}}
|
|
|
+ <tr>
|
|
|
+ <td>{{request.priority}}</td>
|
|
|
+ <td>{{request.resourceName}}</td>
|
|
|
+ <td><Memory:{{request.capability.memory}};vCores:{{request.capability.virtualCores}}></td>
|
|
|
+ <td>{{request.numContainers}}</td>
|
|
|
+ <td>{{request.relaxLocality}}</td>
|
|
|
+ <td>
|
|
|
+ {{#if request.nodeLabelExpression}}
|
|
|
+ {{request.nodeLabelExpression}}
|
|
|
+ {{else}}
|
|
|
+ N/A
|
|
|
+ {{/if}}
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ {{else}}
|
|
|
+ <div class="panel-body">No data available!</div>
|
|
|
+ {{/each}}
|
|
|
</tbody>
|
|
|
</table>
|
|
|
</div>
|
|
|
</div>
|
|
|
+{{/unless}}
|
|
|
|
|
|
-</div>
|
|
|
+<div class="col-md-12">
|
|
|
+ <div class="panel panel-default">
|
|
|
+ <div class="panel-heading">Scheduling Info</div>
|
|
|
+ <table class="display table table-striped table-bordered"
|
|
|
+ cellspacing="0" width="100%">
|
|
|
+ <thead>
|
|
|
+ <tr>
|
|
|
+ <th>Allocated Resource</th>
|
|
|
+ <th>Running Containers</th>
|
|
|
+ <th>Preempted Resource</th>
|
|
|
+ <th>Num Non-AM container preempted</th>
|
|
|
+ <th>Num AM container preempted</th>
|
|
|
+ <th>Aggregated Resource Usage</th>
|
|
|
+ </tr>
|
|
|
+ </thead>
|
|
|
|
|
|
-<div class="row">
|
|
|
- <div class="col-md-6 container-fluid">
|
|
|
- <div class="panel panel-default">
|
|
|
- <div class="panel-heading">Application Master Info</div>
|
|
|
- <table class="display table table-striped table-bordered"
|
|
|
- cellspacing="0" width="100%">
|
|
|
- <thead>
|
|
|
- <tr>
|
|
|
- <th>Master Container Log</th>
|
|
|
- <th>Master Node</th>
|
|
|
- <th>Master Node Label Expression</th>
|
|
|
- </tr>
|
|
|
- </thead>
|
|
|
-
|
|
|
- <tbody>
|
|
|
- <tr>
|
|
|
- <td><a href="{{model.app.amContainerLogs}}" target="_blank">Link</a></td>
|
|
|
- <td><a href="{{amHostHttpAddressFormatted}}" target="_blank">Link</a></td>
|
|
|
- <td>{{model.app.amNodeLabelExpression}}</td>
|
|
|
- </tr>
|
|
|
- </tbody>
|
|
|
- </table>
|
|
|
- </div>
|
|
|
+ <tbody>
|
|
|
+ <tr>
|
|
|
+ <td>{{model.app.allocatedResource}}</td>
|
|
|
+ <td>{{model.app.runningContainersNumber}}</td>
|
|
|
+ <td>{{model.app.preemptedResource}}</td>
|
|
|
+ <td>{{model.app.numAMContainerPreempted}}</td>
|
|
|
+ <td>{{model.app.numAMContainerPreempted}}</td>
|
|
|
+ <td>{{model.app.aggregatedResourceUsage}}</td>
|
|
|
+ </tr>
|
|
|
+ </tbody>
|
|
|
+ </table>
|
|
|
</div>
|
|
|
-
|
|
|
- {{#if model.serviceName}}
|
|
|
- <div class="col-md-6 container-fluid">
|
|
|
- <div class="panel panel-default">
|
|
|
- <div class="panel-heading">Quick Links</div>
|
|
|
- <table class="display table table-striped table-bordered">
|
|
|
- <tbody>
|
|
|
- {{#each model.quicklinks as |link|}}
|
|
|
- <tr>
|
|
|
- <td>{{link.name}}</td>
|
|
|
- <td><a href="{{link.value}}" target="_blank">{{link.value}}</a></td>
|
|
|
- </tr>
|
|
|
- {{else}}
|
|
|
- <tr class="align-center">
|
|
|
- <td colspan="2">No quicklinks available!</td>
|
|
|
- </tr>
|
|
|
- {{/each}}
|
|
|
- </tbody>
|
|
|
- </table>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- {{/if}}
|
|
|
</div>
|
|
|
|
|
|
{{confirm-dialog
|