| {{! |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| }} |
| |
| {{breadcrumb-bar breadcrumbs=breadcrumbs}} |
| |
| {{#if actionResponse}} |
| <div class="alert-wrapper"> |
| <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> |
| </div> |
| {{/if}} |
| |
| <div class="panel-group col-md-12"> |
| <div class="panel panel-default"> |
| <div class="yarn-app-header"> |
| <div class="flex"> |
| <div> |
| <div class="flex"> |
| <div> |
| <h3 class="yarn-app-name"> |
| {{#if model.app.unmanagedApplication}} |
| <span title="This is an unmanaged application" class="yarn-tooltip"> |
| <i class="glyphicon glyphicon-exclamation-sign glyphicon-gray" /> |
| </span> |
| {{/if}} |
| {{model.app.appName}} |
| </h3> |
| </div> |
| {{#if model.app.finalStatus}} |
| <div title="Final status" class="yarn-tooltip yarn-app-final-status offset-1"> |
| <span class={{model.app.finalStatusStyle}}> |
| {{model.app.finalStatus}} |
| </span> |
| </div> |
| {{/if}} |
| </div> |
| <div title="Application id" class="muted-text">{{model.app.id}}</div> |
| {{em-table-simple-status-cell content=model.app.state}} |
| <div class="flex"> |
| <div class="tail-2"> |
| <i class="glyphicon glyphicon-user glyphicon-gray" /> {{model.app.user}} |
| </div> |
| {{#if model.app.hasFinishedTime}} |
| <div title="Started at {{model.app.formattedStartTime}}. Ran for {{model.app.formattedElapsedTime}}" class="yarn-tooltip"> |
| <i class="glyphicon glyphicon-time glyphicon-gray" /> |
| Finished at {{model.app.formattedFinishedTime}} |
| </div> |
| {{else}} |
| <div title="Running for {{model.app.formattedElapsedTime}}" class="yarn-tooltip"> |
| <i class="glyphicon glyphicon-time glyphicon-gray" /> |
| Started at {{model.app.formattedStartTime}} |
| </div> |
| {{/if}} |
| </div> |
| </div> |
| |
| <div class="flex-right"> |
| <div class="links"> |
| {{#if (or (or isServiceDeployedOrRunning isServiceStoppped) isAppKillable)}} |
| <div class="btn-group"> |
| <button type="button" class="btn btn-unstyled dropdown-toggle" title="Settings" |
| data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" style="margin-left: -5px;"> |
| <i class="glyphicon glyphicon-cog"/> Settings |
| </button> |
| <ul class="dropdown-menu dropdown-menu-right"> |
| {{#if isServiceDeployedOrRunning}} |
| <li> |
| <a href="#" {{action "showStopServiceConfirm"}} target="_blank"> |
| <i class="glyphicon glyphicon-stop" /> Stop Service |
| </a> |
| </li> |
| <li> |
| <a href="#" target="_blank" {{action "showDeleteServiceConfirm"}}> |
| <i class="glyphicon glyphicon-trash" /> Delete Service |
| </a> |
| </li> |
| {{/if}} |
| {{#if isServiceStoppped}} |
| <li> |
| <a href="#" target="_blank" {{action "showDeleteServiceConfirm"}}> |
| <i class="glyphicon glyphicon-trash" /> Delete Service |
| </a> |
| </li> |
| {{/if}} |
| {{#if isAppKillable}} |
| <li> |
| <a href="#" {{action "showKillApplicationConfirm"}} target="_blank"> |
| <i class="glyphicon glyphicon-stop" /> Kill Application |
| </a> |
| </li> |
| {{/if}} |
| </ul> |
| </div> |
| {{/if}} |
| |
| {{#if model.serviceName}} |
| {{#if model.quicklinks}} |
| <div class="btn-group quick-links"> |
| <button type="button" class="btn btn-unstyled dropdown-toggle" title="Quick links" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> |
| <i class="glyphicon glyphicon-option-vertical" /> Quicklinks |
| </button> |
| <ul class="dropdown-menu dropdown-menu-right"> |
| {{#each model.quicklinks as |link|}} |
| <li><a href="{{link.value}}" target="_blank">{{link.name}}</a></li> |
| {{/each}} |
| </ul> |
| </div> |
| {{/if}} |
| {{/if}} |
| </div> |
| <div class="btn-group"> |
| <span title="Queue" class="yarn-tooltip"> |
| <i class="glyphicon glyphicon-tasks glyphicon-gray" /> {{model.app.queue}} |
| </span> |
| </div> |
| <div>Priority: {{model.app.priority}}</div> |
| {{#if model.app.trackingUrl}} |
| <div><a href="{{model.app.trackingUrl}}" target="_blank">{{model.app.trackingUI}}</a></div> |
| {{/if}} |
| </div> |
| </div> |
| </div> |
| <div class="panel-heading"> |
| <div class="clearfix"> |
| <ul class="nav nav-pills"> |
| <ul class="nav nav-pills collapse in"> |
| {{#if model.serviceName}} |
| {{#link-to 'yarn-app.components' tagName="li" class=(if (eq target.currentPath 'yarn-app.components') "active")}} |
| {{#link-to 'yarn-app.components' appId (query-params service=model.serviceName)}}Components{{/link-to}} |
| {{/link-to}} |
| {{#link-to 'yarn-app.configs' tagName="li" class=(if (eq target.currentPath 'yarn-app.configs') "active")}} |
| {{#link-to 'yarn-app.configs' appId (query-params service=model.serviceName)}}Configurations & Metrics{{/link-to}} |
| {{/link-to}} |
| {{/if}} |
| {{#link-to 'yarn-app.attempts' tagName="li" class=(if (eq target.currentPath 'yarn-app.attempts') "active")}} |
| {{#link-to 'yarn-app.attempts' appId (query-params service=model.serviceName)}}Attempts List{{/link-to}} |
| {{/link-to}} |
| {{#link-to 'yarn-app.charts' tagName="li" class=(if (eq target.currentPath 'yarn-app.charts') "active")}} |
| {{#link-to 'yarn-app.charts' appId (query-params service=model.serviceName)}}Resource Usage{{/link-to}} |
| {{/link-to}} |
| {{#link-to 'yarn-app.info' tagName="li" class=(if (eq target.currentPath 'yarn-app.info') "active")}} |
| {{#link-to 'yarn-app.info' appId (query-params service=model.serviceName)}}Diagnostics{{/link-to}} |
| {{/link-to}} |
| {{#link-to 'yarn-app.logs' tagName="li" class=(if (eq target.currentPath 'yarn-app.logs') "active")}} |
| {{#link-to 'yarn-app.logs' appId (query-params service=serviceName)}}Logs{{/link-to}} |
| {{/link-to}} |
| {{#link-to 'yarn-app.threaddump' tagName="li" class=(if (eq target.currentPath 'yarn-app.threaddump') "active")}} |
| {{#link-to 'yarn-app.threaddump' appId (query-params service=serviceName)}}Threaddump{{/link-to}} |
| {{/link-to}} |
| </ul> |
| </ul> |
| </div> |
| </div> |
| <div class="panel-body yarn-app-body"> |
| {{outlet}} |
| </div> |
| </div> |
| </div> |
| |
| {{confirm-dialog |
| dialogId="stopServiceConfirmDialog" |
| message=(concat 'Are you sure you want to stop service "' model.serviceName '" for user "' model.app.user '" ?') |
| action="stopService" |
| }} |
| |
| {{confirm-dialog |
| dialogId="deleteServiceConfirmDialog" |
| message=(concat 'Are you sure you want to delete service "' model.serviceName '" for user "' model.app.user '" ?') |
| action="deleteService" |
| }} |
| |
| {{confirm-dialog |
| dialogId="killApplicationConfirmDialog" |
| message=(concat 'Are you sure you want to kill application "' model.app.id '"?') |
| action="killApplication" |
| }} |