{{!--
  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}}

<div class="col-md-12 container-fluid">
  {{node-menu-panel path="yarn-container-log" nodeAddr=model.nodeInfo.addr nodeId=model.nodeInfo.id}}
  <div class="col-md-10">
    <div class="panel panel-default">
      <div class="panel-heading">
        <h5 align="center"><b>{{model.containerLog.logFileName}} for {{model.containerLog.containerID}}</b></h5>
      </div>
      <div class="panel-body">
        {{#if model.containerLog.logs}}
          <pre>{{model.containerLog.logs}}</pre>
        {{else}}
          <p>No logs were written in {{model.containerLog.logFileName}}.</p>
        {{/if}}
      </div>
    </div>
  </div>
</div>
{{outlet}}
