<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!--
   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.
-->
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
    <meta name="description" content="HDFS Storage Container Manager">

    <title>HDFS Storage Container Manager</title>

    <link href="static/bootstrap-3.4.1/css/bootstrap.min.css" rel="stylesheet">
    <link href="static/hadoop.css" rel="stylesheet">
    <link href="static/nvd3-1.8.5.min.css" rel="stylesheet">

    <link href="static/ozone.css" rel="stylesheet">

</head>

<body ng-app="scm">

<header class="navbar navbar-inverse navbar-fixed-top bs-docs-nav">
    <div class="container-fluid">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar"
                    aria-expanded="false" aria-controls="navbar">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="#">HDFS SCM</a>
        </div>


        <navmenu
                metrics="{ 'Rpc metrics' : '#!/metrics/rpc'}"></navmenu>


    </div>
</header>

<div class="container-fluid" style="margin: 12pt">

    <ng-view></ng-view>

</div><!-- /.container -->

<script src="static/jquery-3.4.1.min.js"></script>
<script src="static/angular-1.6.4.min.js"></script>
<script src="static/angular-route-1.6.4.min.js"></script>
<script src="static/d3-3.5.17.min.js"></script>
<script src="static/nvd3-1.8.5.min.js"></script>
<script src="static/angular-nvd3-1.0.9.min.js"></script>
<script src="static/ozone.js"></script>
<script src="scm.js"></script>
<script src="static/bootstrap-3.4.1/js/bootstrap.min.js"></script>
</body>
</html>
