flink-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From trohrm...@apache.org
Subject [11/47] flink git commit: [FLINK-2793] [runtime-web] Redirect to leader in non-standalone mode
Date Tue, 20 Oct 2015 07:59:02 GMT
http://git-wip-us.apache.org/repos/asf/flink/blob/77fc0cc4/flink-runtime-web/web-dashboard/web/partials/jobmanager/config.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/web/partials/jobmanager/config.html b/flink-runtime-web/web-dashboard/web/partials/jobmanager/config.html
deleted file mode 100644
index da6b75b..0000000
--- a/flink-runtime-web/web-dashboard/web/partials/jobmanager/config.html
+++ /dev/null
@@ -1,33 +0,0 @@
-
-<!--
-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.
-
--->
-<table class="table table-properties">
-  <thead>
-    <tr>
-      <th>Key</th>
-      <th>Value</th>
-    </tr>
-  </thead>
-  <tbody>
-    <tr ng-repeat="entry in jobmanager.config | orderBy: 'key'">
-      <td>{{entry.key}}</td>
-      <td>{{entry.value}}</td>
-    </tr>
-  </tbody>
-</table>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flink/blob/77fc0cc4/flink-runtime-web/web-dashboard/web/partials/jobmanager/index.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/web/partials/jobmanager/index.html b/flink-runtime-web/web-dashboard/web/partials/jobmanager/index.html
deleted file mode 100644
index 02c2f47..0000000
--- a/flink-runtime-web/web-dashboard/web/partials/jobmanager/index.html
+++ /dev/null
@@ -1,33 +0,0 @@
-
-<!--
-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.
-
--->
-<nav class="navbar navbar-default navbar-fixed-top navbar-main">
-  <div id="fold-button" ng-click="showSidebar()" class="btn btn-default navbar-btn pull-left"><i class="fa fa-navicon"></i></div>
-  <div class="navbar-title">Job Manager</div>
-</nav>
-<nav class="navbar navbar-default navbar-fixed-top navbar-main-additional">
-  <ul class="nav nav-tabs">
-    <li ui-sref-active="active"><a ui-sref=".config">Configuration</a></li>
-    <li ui-sref-active="active"><a ui-sref=".log">Logs</a></li>
-    <li ui-sref-active="active"><a ui-sref=".stdout">Stdout</a></li>
-  </ul>
-</nav>
-<div id="content-inner" class="has-navbar-main-additional">
-  <div ui-view="details"></div>
-</div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flink/blob/77fc0cc4/flink-runtime-web/web-dashboard/web/partials/jobmanager/stdout.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/web/partials/jobmanager/stdout.html b/flink-runtime-web/web-dashboard/web/partials/jobmanager/stdout.html
deleted file mode 100644
index df6a817..0000000
--- a/flink-runtime-web/web-dashboard/web/partials/jobmanager/stdout.html
+++ /dev/null
@@ -1,40 +0,0 @@
-
-<!--
-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.
-
-
--->
-<table class="table table-properties">
-  <thead>
-    <tr>
-      <th colspan="2">
-        <div class="row">
-          <div class="col-xs-10">Job Manager Output</div>
-          <div class="col-xs-1 text-right"><a ng-click="reloadData()" class="show-pointer"><i class="fa fa-refresh"></i></a></div>
-          <div class="col-xs-1 text-left"><a href="jobmanager/stdout"><i class="fa fa-download"></i></a></div>
-        </div>
-      </th>
-    </tr>
-  </thead>
-  <tbody>
-    <tr>
-      <td colspan="2">
-        <pre>{{jobmanager.stdout}}</pre>
-      </td>
-    </tr>
-  </tbody>
-</table>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flink/blob/77fc0cc4/flink-runtime-web/web-dashboard/web/partials/jobs/completed-jobs.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/web/partials/jobs/completed-jobs.html b/flink-runtime-web/web-dashboard/web/partials/jobs/completed-jobs.html
deleted file mode 100644
index b76278d..0000000
--- a/flink-runtime-web/web-dashboard/web/partials/jobs/completed-jobs.html
+++ /dev/null
@@ -1,53 +0,0 @@
-
-<!--
-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.
-
--->
-<nav class="navbar navbar-default navbar-fixed-top navbar-main">
-  <div id="fold-button" ng-click="showSidebar()" class="btn btn-default navbar-btn pull-left"><i class="fa fa-navicon"></i></div>
-  <div class="navbar-title">Completed Jobs</div>
-</nav>
-<div id="content-inner">
-  <table class="table table-hover table-clickable">
-    <thead>
-      <tr>
-        <th>Start Time</th>
-        <th>End Time</th>
-        <th>Duration</th>
-        <th>Job Name</th>
-        <th>Job ID</th>
-        <th>Tasks</th>
-        <th>Status</th>
-      </tr>
-    </thead>
-    <tbody>
-      <tr ng-repeat="job in jobs" ui-sref="single-job.plan.overview({ jobid: job.jid })">
-        <td>{{job['start-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss'}}</td>
-        <td>{{job['end-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss'}}</td>
-        <td>{{job.duration}} ms</td>
-        <td>{{job.name}}</td>
-        <td>{{job.jid}}</td>
-        <td class="label-group">
-          <bs-label status="{{status}}" ng-repeat="(status, value) in job.tasks">{{value}}</bs-label>
-        </td>
-        <td> 
-          <bs-label status="{{job.state}}">{{job.state}}</bs-label>
-        </td>
-      </tr>
-    </tbody>
-  </table>
-</div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flink/blob/77fc0cc4/flink-runtime-web/web-dashboard/web/partials/jobs/job.config.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/web/partials/jobs/job.config.html b/flink-runtime-web/web-dashboard/web/partials/jobs/job.config.html
deleted file mode 100644
index a7a5d9d..0000000
--- a/flink-runtime-web/web-dashboard/web/partials/jobs/job.config.html
+++ /dev/null
@@ -1,57 +0,0 @@
-
-<!--
-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.
-
--->
-<table ng-if="job['execution-config']" class="table table-properties">
-  <thead>
-    <tr>
-      <th colspan="2">Execution configuration</th>
-    </tr>
-  </thead>
-  <tbody>
-    <tr>
-      <td>Execution mode</td>
-      <td>{{ job['execution-config']['execution-mode'] }}</td>
-    </tr>
-    <tr>
-      <td>Max. number of execution retries</td>
-      <td>{{ job['execution-config']['max-execution-retries'] === -1 ? 'deactivated' : job['execution-config']['max-execution-retries'] }}</td>
-    </tr>
-    <tr>
-      <td>Job parallelism</td>
-      <td>{{ job['execution-config']['job-parallelism'] === -1 ? 'auto' : job['execution-config']['job-parallelism'] }}</td>
-    </tr>
-    <tr>
-      <td>Object reuse mode</td>
-      <td>{{ job['execution-config']['object-reuse-mode'] }}</td>
-    </tr>
-  </tbody>
-</table>
-<table ng-if="job['execution-config']['user-config']" class="table table-properties">
-  <thead>
-    <tr>
-      <th colspan="2">User configuration</th>
-    </tr>
-  </thead>
-  <tbody>
-    <tr ng-repeat="property in job['execution-config']['user-config']">
-      <td>{{property.name}}</td>
-      <td table-property="table-property" value="property.value"></td>
-    </tr>
-  </tbody>
-</table>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flink/blob/77fc0cc4/flink-runtime-web/web-dashboard/web/partials/jobs/job.exceptions.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/web/partials/jobs/job.exceptions.html b/flink-runtime-web/web-dashboard/web/partials/jobs/job.exceptions.html
deleted file mode 100644
index a5f6676..0000000
--- a/flink-runtime-web/web-dashboard/web/partials/jobs/job.exceptions.html
+++ /dev/null
@@ -1,38 +0,0 @@
-
-<!--
-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.
-
--->
-<div ng-if="exceptions['root-exception']" class="panel panel-default panel-multi">
-  <div class="panel-heading clearfix">
-    <div class="panel-title">Root exception</div>
-  </div>
-  <div class="panel-body">
-    <pre class="exception">{{ exceptions['root-exception'] }}</pre>
-  </div>
-</div>
-<div ng-repeat="exception in exceptions['all-exceptions']" class="panel panel-default panel-multi">
-  <div class="panel-heading clearfix">
-    <div class="panel-title">{{ exception.task }}</div>
-  </div>
-  <div class="panel-heading clearfix">
-    <div class="panel-info thin last"><span>{{ exception.location }}</span></div>
-  </div>
-  <div class="panel-body">
-    <pre class="exception">{{ exception.exception }}</pre>
-  </div>
-</div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flink/blob/77fc0cc4/flink-runtime-web/web-dashboard/web/partials/jobs/job.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/web/partials/jobs/job.html b/flink-runtime-web/web-dashboard/web/partials/jobs/job.html
deleted file mode 100644
index 9d3e171..0000000
--- a/flink-runtime-web/web-dashboard/web/partials/jobs/job.html
+++ /dev/null
@@ -1,48 +0,0 @@
-
-<!--
-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.
-
--->
-<nav ng-if="job" class="navbar navbar-default navbar-fixed-top navbar-main">
-  <div id="fold-button" ng-click="showSidebar()" class="btn btn-default navbar-btn pull-left"><i class="fa fa-navicon"></i></div>
-  <div class="navbar-title">
-    <indicator-primary status="{{job.state}}"></indicator-primary>{{ job.name }}
-  </div>
-  <div class="navbar-info first last hidden-xs hidden-sm">{{ job.jid }}</div>
-  <div class="navbar-info first last">
-    <div class="label-group">
-      <bs-label status="{{status}}" ng-repeat="(status, value) in job['status-counts']">{{value}}</bs-label>
-    </div>
-  </div>
-  <div class="navbar-info first last hidden-xs hidden-sm">{{ job['start-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss' }}<span ng-if="job['end-time'] &gt; -1">
-      - 
-      {{ job['end-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss' }}</span></div>
-  <div ng-if="job.duration &gt; -1" class="navbar-info last first">{{job.duration}} ms</div>
-</nav>
-<nav ng-if="job" class="navbar navbar-default navbar-fixed-top navbar-main-additional">
-  <ul class="nav nav-tabs">
-    <li ui-sref-active="active"><a ui-sref=".plan.overview">Plan</a></li>
-    <li ui-sref-active="active"><a ui-sref=".statistics">Job Accumulators / Statistics</a></li>
-    <li ui-sref-active="active"><a ui-sref=".timeline">Timeline</a></li>
-    <li ui-sref-active="active"><a ui-sref=".exceptions">Exceptions</a></li>
-    <li ui-sref-active="active"><a ui-sref=".properties">Properties</a></li>
-    <li ui-sref-active="active"><a ui-sref=".config">Configuration</a></li>
-  </ul>
-</nav>
-<div id="content-inner" class="has-navbar-main-additional">
-  <div ui-view="details"></div>
-</div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flink/blob/77fc0cc4/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.html b/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.html
deleted file mode 100644
index f2c4143..0000000
--- a/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.html
+++ /dev/null
@@ -1,31 +0,0 @@
-
-<!--
-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.
-
--->
-<div class="canvas-wrapper">
-  <div job-plan="job-plan" plan="plan" jobid="{{jobid}}" set-node="changeNode(nodeid)" class="main-canvas"></div>
-</div>
-<div ng-if="plan" class="panel panel-default panel-multi">
-  <nav class="navbar navbar-default navbar-secondary-additional">
-    <ul class="nav nav-tabs">
-      <li ui-sref-active="active"><a ui-sref=".overview({nodeid: nodeid})">Overview</a></li>
-      <li ui-sref-active="active"><a ui-sref=".accumulators({nodeid: nodeid})">Accumulators</a></li>
-    </ul>
-  </nav>
-  <div ui-view="node-details" class="panel-body clean"></div>
-</div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flink/blob/77fc0cc4/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node-list.accumulators.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node-list.accumulators.html b/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node-list.accumulators.html
deleted file mode 100644
index 8de3921..0000000
--- a/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node-list.accumulators.html
+++ /dev/null
@@ -1,40 +0,0 @@
-
-<!--
-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.
-
--->
-<table class="table table-body-hover table-clickable table-activable">
-  <thead>
-    <tr>
-      <th>Name</th>
-      <th>Status</th>
-    </tr>
-  </thead>
-  <tbody ng-repeat="v in job.vertices" ng-class="{ active: v.id == nodeid }" ng-click="v.id == nodeid || changeNode(v.id)">
-    <tr ng-if="v.type == 'regular'">
-      <td>{{ v.name | humanizeText }}</td>
-      <td> 
-        <bs-label status="{{v.status}}">{{v.status}}</bs-label>
-      </td>
-    </tr>
-    <tr ng-if="nodeid &amp;&amp; v.id == nodeid">
-      <td colspan="10">
-        <div ng-include=" 'partials/jobs/job.plan.node.accumulators.html' "></div>
-      </td>
-    </tr>
-  </tbody>
-</table>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flink/blob/77fc0cc4/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node-list.overview.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node-list.overview.html b/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node-list.overview.html
deleted file mode 100644
index 1706d3e..0000000
--- a/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node-list.overview.html
+++ /dev/null
@@ -1,60 +0,0 @@
-
-<!--
-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.
-
--->
-<table class="table table-body-hover table-clickable table-activable">
-  <thead>
-    <tr>
-      <th>Start Time</th>
-      <th>End Time</th>
-      <th>Duration</th>
-      <th>Name</th>
-      <th>Bytes read</th>
-      <th>Records read</th>
-      <th>Bytes written</th>
-      <th>Records written</th>
-      <th>Tasks</th>
-      <th>Status</th>
-    </tr>
-  </thead>
-  <tbody ng-repeat="v in job.vertices" ng-class="{ active: v.id == nodeid }" ng-click="changeNode(v.id)">
-    <tr ng-if="v.type == 'regular'">
-      <td><span ng-if="v['start-time'] &gt; -1">{{ v['start-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss' }}</span></td>
-      <td><span ng-if="v['end-time'] &gt; -1">{{ v['end-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss' }}</span></td>
-      <td><span ng-if="v.duration &gt; -1">{{ v.duration }} ms</span></td>
-      <td class="td-long">{{ v.name | humanizeText }}</td>
-      <td>{{ v.metrics['read-bytes'] }}</td>
-      <td>{{ v.metrics['read-records'] }}</td>
-      <td>{{ v.metrics['write-bytes'] }}</td>
-      <td>{{ v.metrics['write-records'] }}</td>
-      <td>
-        <div class="label-group">
-          <bs-label status="{{status}}" ng-repeat="(index, status) in stateList">{{v.tasks[status]}}</bs-label>
-        </div>
-      </td>
-      <td> 
-        <bs-label status="{{v.status}}">{{v.status}}</bs-label>
-      </td>
-    </tr>
-    <tr ng-if="nodeid &amp;&amp; v.id == nodeid">
-      <td colspan="10">
-        <div ng-include=" 'partials/jobs/job.plan.node.subtasks.html' "></div>
-      </td>
-    </tr>
-  </tbody>
-</table>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flink/blob/77fc0cc4/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node.accumulators.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node.accumulators.html b/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node.accumulators.html
deleted file mode 100644
index e7dcf2c..0000000
--- a/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node.accumulators.html
+++ /dev/null
@@ -1,68 +0,0 @@
-
-<!--
-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.
-
--->
-<div ng-if="accumulators.length == 0">
-  <p><i>No accumulators</i></p>
-</div>
-<div ng-if="accumulators &amp;&amp; accumulators.length &gt; 0">
-  <table class="table table-hover table-clickable table-activable table-inner">
-    <thead>
-      <tr>
-        <th>Name</th>
-        <th>Type</th>
-        <th>Value</th>
-      </tr>
-    </thead>
-    <tbody>
-      <tr ng-repeat="accumulator in accumulators">
-        <td width="30%">{{ accumulator.name }}</td>
-        <td width="30%">{{ accumulator.type }}</td>
-        <td width="30%">{{ accumulator.value }}</td>
-      </tr>
-    </tbody>
-  </table>
-  <div ng-if="!nodeUnfolded"><a ng-click="toggleFold()" class="btn btn-default">
-      Show subtasks
-       <i class="fa fa-chevron-down"></i></a><a ng-click="deactivateNode(); $event.stopPropagation()" title="Fold" class="btn btn-default pull-right"><i class="fa fa-chevron-up"></i></a></div>
-  <div ng-if="nodeUnfolded &amp;&amp; subtaskAccumulators &amp;&amp; subtaskAccumulators.length &gt; 0"><a ng-click="toggleFold()" class="btn btn-default">
-      Hide subtasks
-       <i class="fa fa-chevron-up"></i></a>
-    <table class="table table-hover table-clickable table-activable table-inner">
-      <thead>
-        <tr>
-          <th>Name</th>
-          <th>Type</th>
-          <th>Value</th>
-        </tr>
-      </thead>
-      <tbody ng-if="subtask['user-accumulators'] &amp;&amp; subtask['user-accumulators'].length &gt; 0" ng-repeat="subtask in subtaskAccumulators">
-        <tr>
-          <td colwidth="3">
-            <div class="small-label">({{ subtask.subtask }}) {{ subtask.host }}, attempt: {{ subtask.attempt + 1 }}</div>
-          </td>
-        </tr>
-        <tr ng-repeat="accumulator in subtask['user-accumulators']">
-          <td width="30%">{{ accumulator.name }}</td>
-          <td width="30%">{{ accumulator.type }}</td>
-          <td width="30%">{{ accumulator.value }}</td>
-        </tr>
-      </tbody>
-    </table>
-  </div>
-</div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flink/blob/77fc0cc4/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node.subtasks.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node.subtasks.html b/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node.subtasks.html
deleted file mode 100644
index 40b16bc..0000000
--- a/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node.subtasks.html
+++ /dev/null
@@ -1,52 +0,0 @@
-
-<!--
-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.
-
-
--->
-<table ng-if="subtasks" class="table table-hover table-clickable table-activable table-inner">
-  <thead>
-    <tr>
-      <th>Start Time</th>
-      <th>End Time</th>
-      <th>Duration</th>
-      <th>Bytes read</th>
-      <th>Records read</th>
-      <th>Bytes written</th>
-      <th>Records written</th>
-      <th>Attempt</th>
-      <th>Host</th>
-      <th>Status</th>
-    </tr>
-  </thead>
-  <tbody>
-    <tr ng-repeat="subtask in subtasks">
-      <td><span ng-if="subtask['start-time'] &gt; -1">{{ subtask['start-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss' }}</span></td>
-      <td><span ng-if="subtask['end-time'] &gt; -1">{{ subtask['end-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss' }}</span></td>
-      <td><span ng-if="subtask.duration &gt; -1">{{ subtask.duration }} ms</span></td>
-      <td><span ng-if="subtask.metrics['read-bytes'] &gt; -1">{{ subtask.metrics['read-bytes'] }}</span></td>
-      <td><span ng-if="subtask.metrics['read-records'] &gt; -1">{{ subtask.metrics['read-records'] }}</span></td>
-      <td><span ng-if="subtask.metrics['write-bytes'] &gt; -1">{{ subtask.metrics['write-bytes'] }}</span></td>
-      <td><span ng-if="subtask.metrics['write-records'] &gt; -1">{{ subtask.metrics['write-records'] }}</span></td>
-      <td>{{ subtask.attempt + 1 }}</td>
-      <td>{{ subtask.host }}</td>
-      <td> 
-        <bs-label status="{{subtask.status}}">{{subtask.status}}</bs-label>
-      </td>
-    </tr>
-  </tbody>
-</table>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flink/blob/77fc0cc4/flink-runtime-web/web-dashboard/web/partials/jobs/job.properties.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/web/partials/jobs/job.properties.html b/flink-runtime-web/web-dashboard/web/partials/jobs/job.properties.html
deleted file mode 100644
index 907afd3..0000000
--- a/flink-runtime-web/web-dashboard/web/partials/jobs/job.properties.html
+++ /dev/null
@@ -1,140 +0,0 @@
-
-<!--
-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.
-
--->
-<div class="canvas-wrapper">
-  <div job-plan="job-plan" plan="plan" jobid="{{jobid}}" set-node="changeNode(nodeid)" class="main-canvas"></div>
-</div>
-<div ng-if="node" class="panel panel-default">
-  <div class="panel-heading clearfix">
-    <div class="panel-title">{{ node.description | humanizeText }}</div>
-  </div>
-  <div class="panel-body clean">
-    <div class="row">
-      <div class="col-sm-6 col-md-4">
-        <table ng-if="node.optimizer_properties.global_properties" class="table table-properties">
-          <thead>
-            <tr>
-              <th colspan="2">Global Data Properties</th>
-            </tr>
-          </thead>
-          <tbody>
-            <tr ng-repeat="property in node.optimizer_properties.global_properties">
-              <td>{{property.name}}</td>
-              <td table-property="table-property" value="property.value"></td>
-            </tr>
-          </tbody>
-        </table>
-        <table ng-if="node.optimizer_properties.local_properties" class="table table-properties">
-          <thead>
-            <tr>
-              <th colspan="2">Local Data Properties</th>
-            </tr>
-          </thead>
-          <tbody>
-            <tr ng-repeat="property in node.optimizer_properties.local_properties">
-              <td>{{property.name}}</td>
-              <td table-property="table-property" value="property.value"></td>
-            </tr>
-          </tbody>
-        </table>
-        <div class="visible-xs visible-sm">
-          <table class="table table-properties">
-            <thead>
-              <tr>
-                <th colspan="2">Properties</th>
-              </tr>
-            </thead>
-            <tbody>
-              <tr>
-                <td>Operator</td>
-                <td table-property="table-property" value="node.operator_strategy"></td>
-              </tr>
-              <tr>
-                <td>Parallelism</td>
-                <td table-property="table-property" value="node.parallelism"></td>
-              </tr>
-            </tbody>
-          </table>
-        </div>
-      </div>
-      <div class="hidden-sm col-md-4">
-        <table class="table table-properties">
-          <thead>
-            <tr>
-              <th colspan="2">Properties</th>
-            </tr>
-          </thead>
-          <tbody>
-            <tr>
-              <td>Operator</td>
-              <td table-property="table-property" value="node.operator_strategy"></td>
-            </tr>
-            <tr>
-              <td>Parallelism</td>
-              <td table-property="table-property" value="node.parallelism"></td>
-            </tr>
-          </tbody>
-        </table>
-        <table ng-if="node.optimizer_properties.estimates" class="table table-properties">
-          <thead>
-            <tr>
-              <th colspan="2">Size Estimates</th>
-            </tr>
-          </thead>
-          <tbody>
-            <tr ng-repeat="property in node.optimizer_properties.estimates">
-              <td>{{property.name}}</td>
-              <td table-property="table-property" value="property.value"></td>
-            </tr>
-          </tbody>
-        </table>
-      </div>
-      <div class="col-sm-6 col-md-4">
-        <div class="visible-xs visible-sm">
-          <table ng-if="node.optimizer_properties.estimates" class="table table-properties">
-            <thead>
-              <tr>
-                <th colspan="2">Size Estimates</th>
-              </tr>
-            </thead>
-            <tbody>
-              <tr ng-repeat="property in node.optimizer_properties.estimates">
-                <td>{{property.name}}</td>
-                <td table-property="table-property" value="property.value"></td>
-              </tr>
-            </tbody>
-          </table>
-        </div>
-        <table ng-if="node.optimizer_properties.costs" class="table table-properties">
-          <thead>
-            <tr>
-              <th colspan="2">Cost Estimates</th>
-            </tr>
-          </thead>
-          <tbody>
-            <tr ng-repeat="property in node.optimizer_properties.costs">
-              <td>{{property.name}}</td>
-              <td table-property="table-property" value="property.value"></td>
-            </tr>
-          </tbody>
-        </table>
-      </div>
-    </div>
-  </div>
-</div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flink/blob/77fc0cc4/flink-runtime-web/web-dashboard/web/partials/jobs/job.statistics.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/web/partials/jobs/job.statistics.html b/flink-runtime-web/web-dashboard/web/partials/jobs/job.statistics.html
deleted file mode 100644
index 951cc1c..0000000
--- a/flink-runtime-web/web-dashboard/web/partials/jobs/job.statistics.html
+++ /dev/null
@@ -1,40 +0,0 @@
-
-<!--
-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.
-
--->
-<table class="table table-properties">
-  <thead>
-    <tr>
-      <th colspan="2">Some statistics</th>
-    </tr>
-  </thead>
-  <tbody>
-    <tr>
-      <td>Operator</td>
-      <td>1</td>
-    </tr>
-    <tr>
-      <td>Parallelism</td>
-      <td>2</td>
-    </tr>
-    <tr>
-      <td>Subtasks-per-instance</td>
-      <td>3</td>
-    </tr>
-  </tbody>
-</table>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flink/blob/77fc0cc4/flink-runtime-web/web-dashboard/web/partials/jobs/job.timeline.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/web/partials/jobs/job.timeline.html b/flink-runtime-web/web-dashboard/web/partials/jobs/job.timeline.html
deleted file mode 100644
index 2f22576..0000000
--- a/flink-runtime-web/web-dashboard/web/partials/jobs/job.timeline.html
+++ /dev/null
@@ -1,23 +0,0 @@
-
-<!--
-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.
-
--->
-<div class="canvas-wrapper">
-  <div timeline="timeline" vertices="vertices" jobid="jobid" class="timeline-canvas"></div>
-</div>
-<div ui-view="vertex"></div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flink/blob/77fc0cc4/flink-runtime-web/web-dashboard/web/partials/jobs/job.timeline.vertex.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/web/partials/jobs/job.timeline.vertex.html b/flink-runtime-web/web-dashboard/web/partials/jobs/job.timeline.vertex.html
deleted file mode 100644
index 1a4bd06..0000000
--- a/flink-runtime-web/web-dashboard/web/partials/jobs/job.timeline.vertex.html
+++ /dev/null
@@ -1,30 +0,0 @@
-
-<!--
-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.
-
--->
-<div ng-if="vertex" class="panel panel-default panel-multi">
-  <div class="panel-heading clearfix">
-    <div class="panel-title">{{ vertex.groupvertex.groupvertexname | humanizeText }}</div>
-  </div>
-  <div class="panel-body">
-    <div class="canvas-wrapper">
-      <div vertex="vertex" data="vertex" class="timeline-canvas"></div>
-    </div>
-    <div id="timeline1"></div>
-  </div>
-</div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flink/blob/77fc0cc4/flink-runtime-web/web-dashboard/web/partials/jobs/running-jobs.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/web/partials/jobs/running-jobs.html b/flink-runtime-web/web-dashboard/web/partials/jobs/running-jobs.html
deleted file mode 100644
index e175d07..0000000
--- a/flink-runtime-web/web-dashboard/web/partials/jobs/running-jobs.html
+++ /dev/null
@@ -1,53 +0,0 @@
-
-<!--
-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.
-
--->
-<nav class="navbar navbar-default navbar-fixed-top navbar-main">
-  <div id="fold-button" ng-click="showSidebar()" class="btn btn-default navbar-btn pull-left"><i class="fa fa-navicon"></i></div>
-  <div class="navbar-title">Running Jobs</div>
-</nav>
-<div id="content-inner">
-  <table class="table table-hover table-clickable">
-    <thead>
-      <tr>
-        <th>Start Time</th>
-        <th>End Time</th>
-        <th>Duration</th>
-        <th>Job Name</th>
-        <th>Job ID</th>
-        <th>Tasks</th>
-        <th>Status</th>
-      </tr>
-    </thead>
-    <tbody>
-      <tr ng-repeat="job in jobs" ui-sref="single-job.plan.overview({ jobid: job.jid })">
-        <td>{{job['start-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss'}}</td>
-        <td>{{job['end-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss'}}</td>
-        <td>{{job.duration}} ms</td>
-        <td>{{job.name}}</td>
-        <td>{{job.jid}}</td>
-        <td class="label-group">
-          <bs-label status="{{status}}" ng-repeat="(status, value) in job.tasks">{{value}}</bs-label>
-        </td>
-        <td> 
-          <bs-label status="{{job.state}}">{{job.state}}</bs-label>
-        </td>
-      </tr>
-    </tbody>
-  </table>
-</div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flink/blob/77fc0cc4/flink-runtime-web/web-dashboard/web/partials/overview.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/web/partials/overview.html b/flink-runtime-web/web-dashboard/web/partials/overview.html
deleted file mode 100644
index ec3c580..0000000
--- a/flink-runtime-web/web-dashboard/web/partials/overview.html
+++ /dev/null
@@ -1,147 +0,0 @@
-
-<!--
-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.
-
--->
-<nav class="navbar navbar-default navbar-fixed-top navbar-main">
-  <div id="fold-button" ng-click="showSidebar()" class="btn btn-default navbar-btn pull-left"><i class="fa fa-navicon"></i></div>
-  <div class="navbar-title">Overview</div>
-</nav>
-<div id="content-inner">
-  <div class="row">
-    <div class="col-md-6">
-      <div class="panel panel-default panel-dashboard">
-        <div class="panel-heading">
-          <div class="row">
-            <div class="col-xs-3"><i class="fa fa-tasks fa-3x"></i></div>
-            <div class="col-xs-9 text-right">
-              <div class="huge">{{overview.taskmanagers}}</div>
-              <div>Task Managers</div>
-            </div>
-          </div>
-        </div>
-        <div class="panel-heading">
-          <div class="row">
-            <div class="col-xs-3"><i class="fa fa-folder fa-3x"></i></div>
-            <div class="col-xs-9 text-right">
-              <div class="huge">{{overview["slots-total"]}}</div>
-              <div>Task Slots</div>
-            </div>
-          </div>
-        </div>
-        <div class="panel-heading">
-          <div class="row">
-            <div class="col-xs-3"><i class="fa fa-folder-o fa-3x"></i></div>
-            <div class="col-xs-9 text-right">
-              <div class="huge">{{overview["slots-available"]}}</div>
-              <div>Available Task Slots</div>
-            </div>
-          </div>
-        </div>
-      </div>
-    </div>
-    <div class="col-md-6">
-      <div class="panel panel-default panel-lg">
-        <div class="panel-heading">Total Jobs</div>
-        <div class="list-group">
-          <div class="list-group-item">
-            <div class="badge badge-primary">{{overview["jobs-running"]}}</div>Running
-          </div>
-          <div class="list-group-item">
-            <div class="badge badge-success">{{overview["jobs-finished"]}}</div>Finished
-          </div>
-          <div class="list-group-item">
-            <div class="badge badge-info">{{overview["jobs-cancelled"]}}</div>Canceled
-          </div>
-          <div class="list-group-item">
-            <div class="badge badge-danger">{{overview["jobs-failed"]}}</div>Failed
-          </div>
-        </div>
-      </div>
-    </div>
-  </div>
-  <div class="panel panel-default">
-    <div class="panel-heading">
-      <h3 class="panel-title">Running Jobs</h3>
-    </div>
-    <div class="panel-body">
-      <table class="table table-hover table-clickable">
-        <thead>
-          <tr>
-            <th>Start Time</th>
-            <th>End Time</th>
-            <th>Duration</th>
-            <th>Job Name</th>
-            <th>Job ID</th>
-            <th>Tasks</th>
-            <th>Status</th>
-          </tr>
-        </thead>
-        <tbody>
-          <tr ng-repeat="job in runningJobs" ui-sref="single-job.plan.overview({ jobid: job.jid })">
-            <td>{{job['start-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss'}}</td>
-            <td>{{job['end-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss'}}</td>
-            <td>{{job.duration}} ms</td>
-            <td>{{job.name}}</td>
-            <td>{{job.jid}}</td>
-            <td class="label-group">
-              <bs-label status="{{status}}" ng-repeat="(status, value) in job.tasks">{{value}}</bs-label>
-            </td>
-            <td> 
-              <bs-label status="{{job.state}}">{{job.state}}</bs-label>
-            </td>
-          </tr>
-        </tbody>
-      </table>
-    </div>
-  </div>
-  <div class="panel panel-default">
-    <div class="panel-heading">
-      <h3 class="panel-title">Completed Jobs</h3>
-    </div>
-    <div class="panel-body">
-      <table class="table table-hover table-clickable">
-        <thead>
-          <tr>
-            <th>Start Time</th>
-            <th>End Time</th>
-            <th>Duration</th>
-            <th>Job Name</th>
-            <th>Job ID</th>
-            <th>Tasks</th>
-            <th>Status</th>
-          </tr>
-        </thead>
-        <tbody>
-          <tr ng-repeat="job in finishedJobs" ui-sref="single-job.plan.overview({ jobid: job.jid })">
-            <td>{{job['start-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss'}}</td>
-            <td>{{job['end-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss'}}</td>
-            <td>{{job.duration}} ms</td>
-            <td>{{job.name}}</td>
-            <td>{{job.jid}}</td>
-            <td class="label-group">
-              <bs-label status="{{status}}" ng-repeat="(status, value) in job.tasks">{{value}}</bs-label>
-            </td>
-            <td> 
-              <bs-label status="{{job.state}}">{{job.state}}</bs-label>
-            </td>
-          </tr>
-        </tbody>
-      </table>
-    </div>
-  </div>
-</div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flink/blob/77fc0cc4/flink-runtime-web/web-dashboard/web/partials/taskmanager/index.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/web/partials/taskmanager/index.html b/flink-runtime-web/web-dashboard/web/partials/taskmanager/index.html
deleted file mode 100644
index bf37409..0000000
--- a/flink-runtime-web/web-dashboard/web/partials/taskmanager/index.html
+++ /dev/null
@@ -1,57 +0,0 @@
-
-<!--
-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.
-
--->
-<nav class="navbar navbar-default navbar-fixed-top navbar-main">
-  <div id="fold-button" ng-click="showSidebar()" class="btn btn-default navbar-btn pull-left"><i class="fa fa-navicon"></i></div>
-  <div class="navbar-title">Task Managers</div>
-</nav>
-<div id="content-inner">
-  <table class="table table-clickable table-hover">
-    <thead>
-      <tr>
-        <th>Path, ID</th>
-        <th>Data Port</th>
-        <th>Last Heartbeat</th>
-        <th>All Slots</th>
-        <th>Free Slots</th>
-        <th>CPU Cores</th>
-        <th>Physical Memory</th>
-        <th>Free Memory</th>
-        <th>Flink Managed Memory</th>
-      </tr>
-    </thead>
-    <tbody>
-      <tr ng-repeat="manager in managers" ui-sref="single-manager.metrics({taskmanagerid: manager.id})">
-        <td>
-          {{ manager.path }}
-           
-          <div class="small-label">{{ manager.id }}</div>
-        </td>
-        <td>{{ manager.dataPort }}</td>
-        <td>{{ manager.timeSinceLastHeartbeat | amDateFormat:'YYYY-MM-DD, H:mm:ss' }}</td>
-        <td>{{ manager.slotsNumber }}</td>
-        <td>{{ manager.freeSlots }}</td>
-        <td>{{ manager.cpuCores }}</td>
-        <td>{{ manager.physicalMemory | bytes:MB }}</td>
-        <td>{{ manager.freeMemory | bytes:MB }}</td>
-        <td>{{ manager.managedMemory | bytes:MB }}</td>
-      </tr>
-    </tbody>
-  </table>
-</div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flink/blob/77fc0cc4/flink-runtime/src/main/java/org/apache/flink/runtime/instance/AkkaActorGateway.java
----------------------------------------------------------------------
diff --git a/flink-runtime/src/main/java/org/apache/flink/runtime/instance/AkkaActorGateway.java b/flink-runtime/src/main/java/org/apache/flink/runtime/instance/AkkaActorGateway.java
index c00e7fe..a2b0183 100644
--- a/flink-runtime/src/main/java/org/apache/flink/runtime/instance/AkkaActorGateway.java
+++ b/flink-runtime/src/main/java/org/apache/flink/runtime/instance/AkkaActorGateway.java
@@ -156,4 +156,9 @@ public class AkkaActorGateway implements ActorGateway, Serializable {
 	public UUID leaderSessionID() {
 		return leaderSessionID;
 	}
+
+	@Override
+	public String toString() {
+		return String.format("AkkaActorGateway(%s, %s)", actor.path(), leaderSessionID);
+	}
 }

http://git-wip-us.apache.org/repos/asf/flink/blob/77fc0cc4/flink-runtime/src/main/java/org/apache/flink/runtime/util/StandaloneUtils.java
----------------------------------------------------------------------
diff --git a/flink-runtime/src/main/java/org/apache/flink/runtime/util/StandaloneUtils.java b/flink-runtime/src/main/java/org/apache/flink/runtime/util/StandaloneUtils.java
index 4cdc4f8..460f10e 100644
--- a/flink-runtime/src/main/java/org/apache/flink/runtime/util/StandaloneUtils.java
+++ b/flink-runtime/src/main/java/org/apache/flink/runtime/util/StandaloneUtils.java
@@ -63,6 +63,8 @@ public final class StandaloneUtils {
 			Configuration configuration,
 			String jobManagerName)
 		throws UnknownHostException {
+
+
 		Tuple2<String, Object> stringIntPair = TaskManager.getAndCheckJobManagerAddress(configuration);
 
 		String jobManagerHostname = stringIntPair._1();

http://git-wip-us.apache.org/repos/asf/flink/blob/77fc0cc4/flink-runtime/src/main/java/org/apache/flink/runtime/webmonitor/WebMonitor.java
----------------------------------------------------------------------
diff --git a/flink-runtime/src/main/java/org/apache/flink/runtime/webmonitor/WebMonitor.java b/flink-runtime/src/main/java/org/apache/flink/runtime/webmonitor/WebMonitor.java
index c2e2b0d..63e2cc8 100644
--- a/flink-runtime/src/main/java/org/apache/flink/runtime/webmonitor/WebMonitor.java
+++ b/flink-runtime/src/main/java/org/apache/flink/runtime/webmonitor/WebMonitor.java
@@ -28,7 +28,7 @@ public interface WebMonitor {
 	 * 
 	 * @throws Exception This method may forward exceptions, if it cannot bring up the web monitor.
 	 */
-	void start() throws Exception;
+	void start(String jobManagerAkkaUrl) throws Exception;
 
 	/**
 	 * Stops the web server.

http://git-wip-us.apache.org/repos/asf/flink/blob/77fc0cc4/flink-runtime/src/main/scala/org/apache/flink/runtime/jobmanager/JobManager.scala
----------------------------------------------------------------------
diff --git a/flink-runtime/src/main/scala/org/apache/flink/runtime/jobmanager/JobManager.scala b/flink-runtime/src/main/scala/org/apache/flink/runtime/jobmanager/JobManager.scala
index 055274d..161e8de 100644
--- a/flink-runtime/src/main/scala/org/apache/flink/runtime/jobmanager/JobManager.scala
+++ b/flink-runtime/src/main/scala/org/apache/flink/runtime/jobmanager/JobManager.scala
@@ -20,7 +20,7 @@ package org.apache.flink.runtime.jobmanager
 
 import java.io.{File, IOException}
 import java.lang.reflect.{Constructor, InvocationTargetException}
-import java.net.InetSocketAddress
+import java.net.{UnknownHostException, InetAddress, InetSocketAddress}
 import java.util.UUID
 
 import akka.actor.Status.Failure
@@ -43,7 +43,7 @@ import org.apache.flink.runtime.jobgraph.{JobGraph, JobStatus, JobVertexID}
 import org.apache.flink.runtime.jobmanager.SubmittedJobGraphStore.SubmittedJobGraphListener
 import org.apache.flink.runtime.jobmanager.scheduler.{Scheduler => FlinkScheduler}
 import org.apache.flink.runtime.leaderelection.{LeaderContender, LeaderElectionService, StandaloneLeaderElectionService}
-import org.apache.flink.runtime.leaderretrieval.LeaderRetrievalService
+import org.apache.flink.runtime.leaderretrieval.{StandaloneLeaderRetrievalService, LeaderRetrievalService}
 import org.apache.flink.runtime.messages.ArchiveMessages.ArchiveExecutionGraph
 import org.apache.flink.runtime.messages.ExecutionGraphMessages.JobStatusChanged
 import org.apache.flink.runtime.messages.JobManagerMessages._
@@ -130,6 +130,16 @@ class JobManager(
   var futuresToComplete: Option[Seq[Future[Unit]]] = None
 
   /**
+   * The port of the web monitor as configured. Make sure that it is actually configured before
+   * starting the JobManager. This tightly couples the web monitor with the job manager. It is a
+   * temporary workaround until all execution graph components are properly serializable and all
+   * web monitors can transparently interact with each job manager. Currently each web server has
+   * to run in the actor system of the associated job manager.
+   */
+  val webMonitorPort : Int = flinkConfiguration.getInteger(
+    ConfigConstants.JOB_MANAGER_WEB_PORT_KEY, -1)
+
+  /**
    * Run when the job manager is started. Simply logs an informational message.
    * The method also starts the leader election service.
    */
@@ -729,6 +739,9 @@ class JobManager(
 
     case RequestLeaderSessionID =>
       sender() ! ResponseLeaderSessionID(leaderSessionID.orNull)
+
+    case RequestWebMonitorPort =>
+      sender() ! ResponseWebMonitorPort(webMonitorPort)
   }
 
   /**
@@ -1529,6 +1542,39 @@ object JobManager {
       }
     }
 
+    val webMonitor: Option[WebMonitor] =
+      if (configuration.getInteger(ConfigConstants.JOB_MANAGER_WEB_PORT_KEY, 0) >= 0) {
+        val address = AkkaUtils.getAddress(jobManagerSystem)
+
+        configuration.setString(ConfigConstants.JOB_MANAGER_IPC_ADDRESS_KEY, address.host.get)
+        configuration.setInteger(ConfigConstants.JOB_MANAGER_IPC_PORT_KEY, address.port.get)
+
+        // start the job manager web frontend
+        if (configuration.getBoolean(ConfigConstants.JOB_MANAGER_NEW_WEB_FRONTEND_KEY, false)) {
+          val leaderRetrievalService = LeaderRetrievalUtils
+            .createLeaderRetrievalService(configuration)
+
+          LOG.info("Starting NEW JobManger web frontend")
+          // start the new web frontend. we need to load this dynamically
+          // because it is not in the same project/dependencies
+          Some(startWebRuntimeMonitor(configuration, leaderRetrievalService, jobManagerSystem))
+        }
+        else {
+          LOG.info("Starting JobManger web frontend")
+
+          // The old web frontend does not work with recovery mode
+          val leaderRetrievalService = StandaloneUtils.createLeaderRetrievalService(configuration)
+          Some(new WebInfoServer(configuration, leaderRetrievalService, jobManagerSystem))
+        }
+      }
+      else {
+        None
+      }
+
+    // Reset the port (necessary in case of automatic port selection)
+    webMonitor.foreach{ monitor => configuration.setInteger(
+      ConfigConstants.JOB_MANAGER_WEB_PORT_KEY, monitor.getServerPort) }
+
     try {
       // bring up the job manager actor
       LOG.info("Starting JobManager actor")
@@ -1574,19 +1620,10 @@ object JobManager {
           "TaskManager_Process_Reaper")
       }
 
-      val webMonitor = if (
-        configuration.getInteger(
-          ConfigConstants.JOB_MANAGER_WEB_PORT_KEY,
-          0) >= 0) {
-
-        // TODO: Add support for HA. Webserver has to work in dedicated mode. All transferred
-        // information has to be made serializable
-        val address = AkkaUtils.getAddress(jobManagerSystem)
-
-        configuration.setString(ConfigConstants.JOB_MANAGER_IPC_ADDRESS_KEY, address.host.get)
-        configuration.setInteger(ConfigConstants.JOB_MANAGER_IPC_PORT_KEY, address.port.get)
-
-        val leaderRetrievalService = StandaloneUtils.createLeaderRetrievalService(configuration)
+      webMonitor.foreach {
+        monitor =>
+          val jobManagerAkkaUrl = JobManager.getRemoteJobManagerAkkaURL(configuration)
+          monitor.start(jobManagerAkkaUrl)
 
         LOG.info("Starting JobManger web frontend")
         // start the web frontend. we need to load this dynamically
@@ -1595,11 +1632,6 @@ object JobManager {
           configuration,
           leaderRetrievalService,
           jobManagerSystem)
-
-        if(webServer != null) {
-          webServer.start()
-        }
-
         Option(webServer)
       } else {
         None
@@ -1978,6 +2010,31 @@ object JobManager {
   }
 
   /**
+   * Returns the JobManager actor's remote Akka URL, given the configured hostname and port.
+   *
+   * @param config The configuration to parse
+   * @return JobManager actor remote Akka URL
+   */
+  def getRemoteJobManagerAkkaURL(config: Configuration) : String = {
+    val (hostname, port) = TaskManager.getAndCheckJobManagerAddress(config)
+
+    var hostPort: InetSocketAddress = null
+
+    try {
+      val inetAddress: InetAddress = InetAddress.getByName(hostname)
+      hostPort = new InetSocketAddress(inetAddress, port)
+    }
+    catch {
+      case e: UnknownHostException => {
+        throw new UnknownHostException(s"Cannot resolve the JobManager hostname '$hostname' " +
+          s"specified in the configuration")
+      }
+    }
+
+    JobManager.getRemoteJobManagerAkkaURL(hostPort, Option.empty)
+  }
+
+  /**
    * Builds the akka actor path for the JobManager actor to address the actor within
    * its own actor system.
    *

http://git-wip-us.apache.org/repos/asf/flink/blob/77fc0cc4/flink-runtime/src/main/scala/org/apache/flink/runtime/messages/JobManagerMessages.scala
----------------------------------------------------------------------
diff --git a/flink-runtime/src/main/scala/org/apache/flink/runtime/messages/JobManagerMessages.scala b/flink-runtime/src/main/scala/org/apache/flink/runtime/messages/JobManagerMessages.scala
index 8a4d27b..bb5f598 100644
--- a/flink-runtime/src/main/scala/org/apache/flink/runtime/messages/JobManagerMessages.scala
+++ b/flink-runtime/src/main/scala/org/apache/flink/runtime/messages/JobManagerMessages.scala
@@ -380,6 +380,16 @@ object JobManagerMessages {
   /** Response containing the ActorRef of the archiver */
   case class ResponseArchive(actor: ActorRef)
 
+  /** Request for the [[org.apache.flink.runtime.webmonitor.WebMonitor]] port. */
+  case object RequestWebMonitorPort
+
+  /**
+   * Response containing the [[org.apache.flink.runtime.webmonitor.WebMonitor]] port.
+   *
+   * -1 indicates that there is no web monitor running.
+   */
+  case class ResponseWebMonitorPort(port: Integer)
+
   // --------------------------------------------------------------------------
   // Utility methods to allow simpler case object access from Java
   // --------------------------------------------------------------------------
@@ -431,4 +441,8 @@ object JobManagerMessages {
   def getRecoverAllJobs: AnyRef = {
     RecoverAllJobs
   }
+  
+  def getRequestWebMonitorPort: AnyRef = {
+    RequestWebMonitorPort
+  }
 }

http://git-wip-us.apache.org/repos/asf/flink/blob/77fc0cc4/flink-runtime/src/main/scala/org/apache/flink/runtime/minicluster/FlinkMiniCluster.scala
----------------------------------------------------------------------
diff --git a/flink-runtime/src/main/scala/org/apache/flink/runtime/minicluster/FlinkMiniCluster.scala b/flink-runtime/src/main/scala/org/apache/flink/runtime/minicluster/FlinkMiniCluster.scala
index 9c4381e..cefb462 100644
--- a/flink-runtime/src/main/scala/org/apache/flink/runtime/minicluster/FlinkMiniCluster.scala
+++ b/flink-runtime/src/main/scala/org/apache/flink/runtime/minicluster/FlinkMiniCluster.scala
@@ -292,7 +292,7 @@ abstract class FlinkMiniCluster(
       val webServer = WebMonitorUtils.startWebRuntimeMonitor(
         config, leaderRetrievalService, actorSystem)
 
-      webServer.start()
+      webServer.start(jobManagerAkkaURL)
 
       Option(webServer)
     } else {

http://git-wip-us.apache.org/repos/asf/flink/blob/77fc0cc4/flink-yarn/src/main/scala/org/apache/flink/yarn/ApplicationMaster.scala
----------------------------------------------------------------------
diff --git a/flink-yarn/src/main/scala/org/apache/flink/yarn/ApplicationMaster.scala b/flink-yarn/src/main/scala/org/apache/flink/yarn/ApplicationMaster.scala
index ad162fe..6fcbcef 100644
--- a/flink-yarn/src/main/scala/org/apache/flink/yarn/ApplicationMaster.scala
+++ b/flink-yarn/src/main/scala/org/apache/flink/yarn/ApplicationMaster.scala
@@ -19,6 +19,7 @@ package org.apache.flink.yarn
 
 import org.apache.flink.runtime.jobmanager.{MemoryArchivist, JobManager}
 
+
 /** Default implemenation of the [[ApplicationMasterBase]] which starts a [[YarnJobManager]] and a
   * [[MemoryArchivist]].
   */

http://git-wip-us.apache.org/repos/asf/flink/blob/77fc0cc4/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index efe2101..47c47c5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -735,7 +735,7 @@ under the License.
 						<exclude>flink-runtime-web/web-dashboard/assets/fonts/fontawesome*</exclude>
 
                         <!-- generated contents -->
-						<exclude>flink-runtime-web/web-dashboard/web/**</exclude>
+						<exclude>flink-runtime-web/src/main/resources/web/**</exclude>
 
 						<!-- downloaded and generated web libraries. -->
 						<exclude>flink-runtime-web/web-dashboard/node_modules/**</exclude>


Mime
View raw message