You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by ha...@apache.org on 2017/02/06 09:34:18 UTC
mesos git commit: Show maintainance schedule info in the WebUI.
Repository: mesos
Updated Branches:
refs/heads/master 19d343357 -> 3ee57de66
Show maintainance schedule info in the WebUI.
Review: https://reviews.apache.org/r/53741/
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/3ee57de6
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/3ee57de6
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/3ee57de6
Branch: refs/heads/master
Commit: 3ee57de66a23d67cc622e8900f3d093644f332d1
Parents: 19d3433
Author: Tomasz Janiszewski <ja...@gmail.com>
Authored: Mon Feb 6 16:38:27 2017 +0800
Committer: Haosdent Huang <ha...@apache.org>
Committed: Mon Feb 6 17:33:47 2017 +0800
----------------------------------------------------------------------
src/webui/master/static/index.html | 3 +++
src/webui/master/static/js/app.js | 21 ++++++++++-----
src/webui/master/static/js/controllers.js | 14 ++++++++++
src/webui/master/static/maintenance.html | 36 ++++++++++++++++++++++++++
4 files changed, 67 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/3ee57de6/src/webui/master/static/index.html
----------------------------------------------------------------------
diff --git a/src/webui/master/static/index.html b/src/webui/master/static/index.html
index 7c6a8ad..7811ecb 100644
--- a/src/webui/master/static/index.html
+++ b/src/webui/master/static/index.html
@@ -45,6 +45,9 @@
<li data-ng-class="{active: (navbarActiveTab === 'offers')}">
<a href="#/offers">Offers</a>
</li>
+ <li data-ng-class="{active: (navbarActiveTab === 'maintenance')}">
+ <a href="#/maintenance">Maintenance</a>
+ </li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li>
http://git-wip-us.apache.org/repos/asf/mesos/blob/3ee57de6/src/webui/master/static/js/app.js
----------------------------------------------------------------------
diff --git a/src/webui/master/static/js/app.js b/src/webui/master/static/js/app.js
index 558a67d..73043a8 100644
--- a/src/webui/master/static/js/app.js
+++ b/src/webui/master/static/js/app.js
@@ -6,12 +6,6 @@
$routeProvider
.when('/',
{templateUrl: 'static/home.html', controller: 'HomeCtrl'})
- .when('/frameworks',
- {templateUrl: 'static/frameworks.html', controller: 'FrameworksCtrl'})
- .when('/frameworks/:id',
- {templateUrl: 'static/framework.html', controller: 'FrameworkCtrl'})
- .when('/offers',
- {templateUrl: 'static/offers.html', controller: 'OffersCtrl'})
.when('/agents',
{templateUrl: 'static/agents.html', controller: 'AgentsCtrl'})
.when('/agents/:agent_id',
@@ -20,6 +14,14 @@
{templateUrl: 'static/agent_framework.html', controller: 'AgentFrameworkCtrl'})
.when('/agents/:agent_id/frameworks/:framework_id/executors/:executor_id',
{templateUrl: 'static/agent_executor.html', controller: 'AgentExecutorCtrl'})
+ .when('/frameworks',
+ {templateUrl: 'static/frameworks.html', controller: 'FrameworksCtrl'})
+ .when('/frameworks/:id',
+ {templateUrl: 'static/framework.html', controller: 'FrameworkCtrl'})
+ .when('/maintenance',
+ {templateUrl: 'static/maintenance.html', controller: 'MaintenanceCtrl'})
+ .when('/offers',
+ {templateUrl: 'static/offers.html', controller: 'OffersCtrl'})
// TODO(tomxing): Remove the following '/slaves/*' paths once the
// slave->agent rename is complete(MESOS-3779).
@@ -88,7 +90,7 @@
return function(date) {
var i = parseInt(date, 10);
if (_.isNaN(i)) { return '' };
- return $filter('date')(i, 'yyyy-MM-ddTH:mm:ssZ');
+ return $filter('date')(i, 'yyyy-MM-ddTHH:mm:ssZ');
};
})
.filter('relativeDate', function() {
@@ -257,6 +259,11 @@
var setSorting = function(el) {
var key = el.attr('data-key');
+ // Prevent sorting when 'data-key' is undefined.
+ if (!key) {
+ return;
+ }
+
if (scope.columnKey === key) {
scope.sortOrder = !scope.sortOrder;
}
http://git-wip-us.apache.org/repos/asf/mesos/blob/3ee57de6/src/webui/master/static/js/controllers.js
----------------------------------------------------------------------
diff --git a/src/webui/master/static/js/controllers.js b/src/webui/master/static/js/controllers.js
index 07bc612..2ea8275 100644
--- a/src/webui/master/static/js/controllers.js
+++ b/src/webui/master/static/js/controllers.js
@@ -471,6 +471,20 @@
mesosApp.controller('OffersCtrl', function() {});
+ mesosApp.controller('MaintenanceCtrl', function($scope, $http) {
+ // TODO(haosdent): Send requests to the leading master directly
+ // once `leadingMasterURL` is public.
+ $http.jsonp('/master/maintenance/schedule?jsonp=JSON_CALLBACK')
+ .success(function(response) {
+ $scope.maintenance = response;
+ })
+ .error(function() {
+ if ($scope.isErrorModalOpen === false) {
+ popupErrorModal();
+ }
+ });
+ });
+
mesosApp.controller('FrameworkCtrl', function($scope, $routeParams) {
var update = function() {
if ($routeParams.id in $scope.completed_frameworks) {
http://git-wip-us.apache.org/repos/asf/mesos/blob/3ee57de6/src/webui/master/static/maintenance.html
----------------------------------------------------------------------
diff --git a/src/webui/master/static/maintenance.html b/src/webui/master/static/maintenance.html
new file mode 100644
index 0000000..d06ddd2
--- /dev/null
+++ b/src/webui/master/static/maintenance.html
@@ -0,0 +1,36 @@
+<ol class="breadcrumb">
+ <li>
+ <a class="badge badge-type" href="#/">Master</a>
+ </li>
+ <li class="active">
+ <span class="badge badge-type">Maintenance Schedule</span>
+ </li>
+</ol>
+
+<table m-table table-content="maintenance.windows" title="Maintenance Schedule"
+ class="table table-striped table-bordered table-condensed">
+ <thead>
+ <tr>
+ <th data-key="unavailability.start.nanoseconds" data-sort>Begin</th>
+ <th>End</th>
+ <th>Hosts</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr ng-repeat="window in $data">
+ <td>
+ <m-timestamp value="{{window.unavailability.start.nanoseconds / 1000000}}">
+ </m-timestamp>
+ </td>
+ <td>
+ <m-timestamp value="{{(window.unavailability.duration.nanoseconds + window.unavailability.start.nanoseconds) / 1000000}}">
+ </m-timestamp>
+ </td>
+ <td>
+ <div ng-repeat="machine_ids in window.machine_ids">
+ {{machine_ids.hostname ? machine_ids.hostname : machine_ids.ip}}
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>