diff options
Diffstat (limited to 'sdnr/wt/devicemanager/provider/src/main/resources/elasticsearch/plugins/head/src/app/ui/clusterOverview/clusterOverview.js')
-rw-r--r-- | sdnr/wt/devicemanager/provider/src/main/resources/elasticsearch/plugins/head/src/app/ui/clusterOverview/clusterOverview.js | 317 |
1 files changed, 0 insertions, 317 deletions
diff --git a/sdnr/wt/devicemanager/provider/src/main/resources/elasticsearch/plugins/head/src/app/ui/clusterOverview/clusterOverview.js b/sdnr/wt/devicemanager/provider/src/main/resources/elasticsearch/plugins/head/src/app/ui/clusterOverview/clusterOverview.js deleted file mode 100644 index 5896c53b1..000000000 --- a/sdnr/wt/devicemanager/provider/src/main/resources/elasticsearch/plugins/head/src/app/ui/clusterOverview/clusterOverview.js +++ /dev/null @@ -1,317 +0,0 @@ -/** - * Copyright 2010-2013 Ben Birch - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this software 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. - */ -(function( $, app, i18n ) { - - var ui = app.ns("ui"); - var services = app.ns("services"); - - // ( master ) master = true, data = true - // ( coordinator ) master = true, data = false - // ( worker ) master = false, data = true; - // ( client ) master = false, data = false; - // http enabled ? - - function nodeSort_name(a, b) { - if (!(a.cluster && b.cluster)) { - return 0; - } - return a.cluster.name.toString().localeCompare( b.cluster.name.toString() ); - } - - function nodeSort_addr( a, b ) { - if (!(a.cluster && b.cluster)) { - return 0; - } - return a.cluster.transport_address.toString().localeCompare( b.cluster.transport_address.toString() ); - } - - function nodeSort_type( a, b ) { - if (!(a.cluster && b.cluster)) { - return 0; - } - if( a.master_node ) { - return -1; - } else if( b.master_node ) { - return 1; - } else if( a.data_node && !b.data_node ) { - return -1; - } else if( b.data_node && !a.data_node ) { - return 1; - } else { - return a.cluster.name.toString().localeCompare( b.cluster.name.toString() ); - } - } - - var NODE_SORT_TYPES = { - "Sort.ByName": nodeSort_name, - "Sort.ByAddress": nodeSort_addr, - "Sort.ByType": nodeSort_type - }; - - function nodeFilter_none( a ) { - return true; - } - - function nodeFilter_clients( a ) { - return (a.master_node || a.data_node ); - } - - - ui.ClusterOverview = ui.Page.extend({ - defaults: { - cluster: null // (reqired) an instanceof app.services.Cluster - }, - init: function() { - this._super(); - this.cluster = this.config.cluster; - this.prefs = services.Preferences.instance(); - this._clusterState = this.config.clusterState; - this._clusterState.on("data", this.draw_handler ); - this._refreshButton = new ui.RefreshButton({ - onRefresh: this.refresh.bind(this), - onChange: function( btn ) { - if( btn.value === -1 ) { - this.draw_handler(); - } - }.bind( this ) - }); - var nodeSortPref = this.prefs.get("clusterOverview-nodeSort") || Object.keys(NODE_SORT_TYPES)[0]; - this._nodeSort = NODE_SORT_TYPES[ nodeSortPref ]; - this._nodeSortMenu = new ui.MenuButton({ - label: i18n.text( "Preference.SortCluster" ), - menu: new ui.SelectMenuPanel({ - value: nodeSortPref, - items: Object.keys( NODE_SORT_TYPES ).map( function( k ) { - return { text: i18n.text( k ), value: k }; - }), - onSelect: function( panel, event ) { - this._nodeSort = NODE_SORT_TYPES[ event.value ]; - this.prefs.set("clusterOverview-nodeSort", event.value ); - this.draw_handler(); - }.bind(this) - }) - }); - this._indicesSort = this.prefs.get( "clusterOverview-indicesSort") || "desc"; - this._indicesSortMenu = new ui.MenuButton({ - label: i18n.text( "Preference.SortIndices" ), - menu: new ui.SelectMenuPanel({ - value: this._indicesSort, - items: [ - { value: "desc", text: i18n.text( "SortIndices.Descending" ) }, - { value: "asc", text: i18n.text( "SortIndices.Ascending" ) } ], - onSelect: function( panel, event ) { - this._indicesSort = event.value; - this.prefs.set( "clusterOverview-indicesSort", this._indicesSort ); - this.draw_handler(); - }.bind(this) - }) - }); - this._aliasRenderer = this.prefs.get( "clusterOverview-aliasRender" ) || "full"; - this._aliasMenu = new ui.MenuButton({ - label: i18n.text( "Preference.ViewAliases" ), - menu: new ui.SelectMenuPanel({ - value: this._aliasRenderer, - items: [ - { value: "full", text: i18n.text( "ViewAliases.Grouped" ) }, - { value: "list", text: i18n.text( "ViewAliases.List" ) }, - { value: "none", text: i18n.text( "ViewAliases.None" ) } ], - onSelect: function( panel, event ) { - this._aliasRenderer = event.value; - this.prefs.set( "clusterOverview-aliasRender", this._aliasRenderer ); - this.draw_handler(); - }.bind(this) - }) - }); - this._indexFilter = new ui.TextField({ - value: this.prefs.get("clusterOverview-indexFilter"), - placeholder: i18n.text( "Overview.IndexFilter" ), - onchange: function( indexFilter ) { - this.prefs.set("clusterOverview-indexFilter", indexFilter.val() ); - this.draw_handler(); - }.bind(this) - }); - this.el = $(this._main_template()); - this.tablEl = this.el.find(".uiClusterOverview-table"); - this.refresh(); - }, - remove: function() { - this._clusterState.removeObserver( "data", this.draw_handler ); - }, - refresh: function() { - this._refreshButton.disable(); - this._clusterState.refresh(); - }, - draw_handler: function() { - var data = this._clusterState; - var indexFilter; - try { - var indexFilterRe = new RegExp( this._indexFilter.val() ); - indexFilter = function(s) { return indexFilterRe.test(s); }; - } catch(e) { - indexFilter = function() { return true; }; - } - var clusterState = data.clusterState; - var status = data.status; - var nodeStats = data.nodeStats; - var clusterNodes = data.clusterNodes; - var nodes = []; - var indices = []; - var cluster = {}; - var nodeIndices = {}; - var indexIndices = {}, indexIndicesIndex = 0; - function newNode(n) { - return { - name: n, - routings: [], - master_node: clusterState.master_node === n - }; - } - function newIndex(i) { - return { - name: i, - replicas: [] - }; - } - function getIndexForNode(n) { - return nodeIndices[n] = (n in nodeIndices) ? nodeIndices[n] : nodes.push(newNode(n)) - 1; - } - function getIndexForIndex(routings, i) { - var index = indexIndices[i] = (i in indexIndices) ? - (routings[indexIndices[i]] = routings[indexIndices[i]] || newIndex(i)) && indexIndices[i] - : ( ( routings[indexIndicesIndex] = newIndex(i) ) && indexIndicesIndex++ ); - indices[index] = i; - return index; - } - $.each(clusterNodes.nodes, function(name, node) { - getIndexForNode(name); - }); - - var indexNames = []; - $.each(clusterState.routing_table.indices, function(name, index){ - indexNames.push(name); - }); - indexNames.sort(); - if (this._indicesSort === "desc") indexNames.reverse(); - indexNames.filter( indexFilter ).forEach(function(name) { - var indexObject = clusterState.routing_table.indices[name]; - $.each(indexObject.shards, function(name, shard) { - shard.forEach(function(replica){ - var node = replica.node; - if(node === null) { node = "Unassigned"; } - var index = replica.index; - var shard = replica.shard; - var routings = nodes[getIndexForNode(node)].routings; - var indexIndex = getIndexForIndex(routings, index); - var replicas = routings[indexIndex].replicas; - if(node === "Unassigned" || !indexObject.shards[shard]) { - replicas.push({ replica: replica }); - } else { - replicas[shard] = { - replica: replica, - status: indexObject.shards[shard].filter(function(replica) { - return replica.node === node; - })[0] - }; - } - }); - }); - }); - indices = indices.map(function(index){ - return { - name: index, - state: "open", - metadata: clusterState.metadata.indices[index], - status: status.indices[index] - }; - }, this); - $.each(clusterState.metadata.indices, function(name, index) { - if(index.state === "close" && indexFilter( name )) { - indices.push({ - name: name, - state: "close", - metadata: index, - status: null - }); - } - }); - nodes.forEach(function(node) { - node.stats = nodeStats.nodes[node.name]; - var cluster = clusterNodes.nodes[node.name]; - node.cluster = cluster || { name: "<unknown>" }; - node.data_node = !( cluster && cluster.attributes && cluster.attributes.data === "false" ); - for(var i = 0; i < indices.length; i++) { - node.routings[i] = node.routings[i] || { name: indices[i].name, replicas: [] }; - node.routings[i].max_number_of_shards = indices[i].metadata.settings["index.number_of_shards"]; - node.routings[i].open = indices[i].state === "open"; - } - }); - var aliasesIndex = {}; - var aliases = []; - var indexClone = indices.map(function() { return false; }); - $.each(clusterState.metadata.indices, function(name, index) { - index.aliases.forEach(function(alias) { - var aliasIndex = aliasesIndex[alias] = (alias in aliasesIndex) ? aliasesIndex[alias] : aliases.push( { name: alias, max: -1, min: 999, indices: [].concat(indexClone) }) - 1; - var indexIndex = indexIndices[name]; - var aliasRow = aliases[aliasIndex]; - aliasRow.min = Math.min(aliasRow.min, indexIndex); - aliasRow.max = Math.max(aliasRow.max, indexIndex); - aliasRow.indices[indexIndex] = indices[indexIndex]; - }); - }); - cluster.aliases = aliases; - cluster.nodes = nodes - .filter( nodeFilter_none ) - .sort( this._nodeSort ); - indices.unshift({ name: null }); - this._drawNodesView( cluster, indices ); - this._refreshButton.enable(); - }, - _drawNodesView: function( cluster, indices ) { - this._nodesView && this._nodesView.remove(); - this._nodesView = new ui.NodesView({ - onRedraw: function() { - this.refresh(); - }.bind(this), - interactive: ( this._refreshButton.value === -1 ), - aliasRenderer: this._aliasRenderer, - cluster: this.cluster, - data: { - cluster: cluster, - indices: indices - } - }); - this._nodesView.attach( this.tablEl ); - }, - _main_template: function() { - return { tag: "DIV", id: this.id(), cls: "uiClusterOverview", children: [ - new ui.Toolbar({ - label: i18n.text("Overview.PageTitle"), - left: [ - this._nodeSortMenu, - this._indicesSortMenu, - this._aliasMenu, - this._indexFilter - ], - right: [ - this._refreshButton - ] - }), - { tag: "DIV", cls: "uiClusterOverview-table" } - ] }; - } - }); - -})( this.jQuery, this.app, this.i18n ); |