aboutsummaryrefslogtreecommitdiff
path: root/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/replication.js
diff options
context:
space:
mode:
authorserver <brownptcdash@gmail.com>2019-12-10 18:12:37 -0500
committerserver <brownptcdash@gmail.com>2019-12-10 18:12:37 -0500
commit7478e610d99d1f2fb383ecbfa0b70d72eae27f81 (patch)
tree59486701838067351f00580315c05690f36a39ce /solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/replication.js
parent096718ee546afbd7568bf8ec9e23dca0556d814d (diff)
solr changes
Diffstat (limited to 'solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/replication.js')
-rw-r--r--solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/replication.js235
1 files changed, 0 insertions, 235 deletions
diff --git a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/replication.js b/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/replication.js
deleted file mode 100644
index 9f7ac3e41..000000000
--- a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/replication.js
+++ /dev/null
@@ -1,235 +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.
-*/
-
-solrAdminApp.controller('ReplicationController',
- function($scope, $rootScope, $routeParams, $interval, $timeout, Replication, Constants) {
- $scope.resetMenu("replication", Constants.IS_CORE_PAGE);
-
- $scope.iterationCount = 1;
-
- $scope.refresh = function() {
- Replication.details({core:$routeParams.core}, function(response) {
- var timeout;
- var interval;
- if ($scope.interval) $interval.cancel($scope.interval);
- $scope.isSlave = (response.details.isSlave === 'true');
- if ($scope.isSlave) {
- $scope.progress = getProgressDetails(response.details.slave);
- $scope.iterations = getIterations(response.details.slave);
- $scope.versions = getSlaveVersions(response.details);
- $scope.settings = getSlaveSettings(response.details);
- if ($scope.settings.isReplicating) {
- timeout = $timeout($scope.refresh, 1000);
- } else if(!$scope.settings.isPollingDisabled && $scope.settings.pollInterval) {
- interval = $scope.interval = $interval(function() {
- $scope.settings.tick--;
- }, 1000, $scope.settings.tick);
- timeout = $timeout($scope.refresh, 1000*(1+$scope.settings.tick));
- }
- } else {
- $scope.versions = getMasterVersions(response.details);
- }
- $scope.master = getMasterSettings(response.details, $scope.isSlave);
-
- var onRouteChangeOff = $scope.$on('$routeChangeStart', function() {
- if (interval) $interval.cancel(interval);
- if (timeout) $timeout.cancel(timeout);
- onRouteChangeOff();
- });
- });
-
- };
-
- $scope.execute = function(command) {
- Replication.command({core:$routeParams.core, command:command}, function(data){$scope.refresh()});
- }
-
- $scope.showIterations = function() { $scope.iterationCount = 100000}; // limitTo should accept undefined, but doesn't work.
- $scope.hideIterations = function() { $scope.iterationCount = 1};
-
- $scope.refresh();
- });
-
-var getProgressDetails = function(progress) {
-
- progress.timeRemaining = parseSeconds(progress.timeRemaining);
- progress.totalPercent = parseInt(progress.totalPercent);
- if (progress.totalPercent === 0) {
- progress.totalPercentWidth = "1px";
- } else {
- progress.totalPercentWidth = progress.totalPercent + "%";
- }
- progress.currentFileSizePercent = parseInt(progress.currentFileSizePercent);
-
- if (!progress.indexReplicatedAtList) {
- progress.indexReplicatedAtList = [];
- }
-
- if (!progress.replicationFailedAtList) {
- progress.replicationFailedAtList = [];
- }
- return progress;
-};
-
-var getIterations = function(slave) {
-
- var iterations = [];
-
- var find = function(list, date) {
- return list.filter(function(e) {return e.date == date});
- };
-
- for (var i in slave.indexReplicatedAtList) {
- var date = slave.indexReplicatedAtList[i];
- var iteration = {date:date, status:"replicated", latest: false};
- if (date == slave.indexReplicatedAt) {
- iteration.latest = true;
- }
- iterations.push(iteration);
- }
-
- for (var i in slave.replicationFailedAtList) {
- var failedDate = slave.replicationFailedAtList[i];
- var matchingIterations = find(iterations, failedDate);
- if (matchingIterations[0]) {
- iteration = matchingIterations[0];
- iteration.status = "failed";
- } else {
- iteration = {date: failedDate, status:"failed", latest:false};
- iterations.push(iteration);
- }
- if (failedDate == slave.replicationFailedAt) {
- iteration.latest = true;
- }
- }
- iterations.sort(function(a,b){ return a.date> b.date;}).reverse();
- return iterations;
-};
-
-var getMasterVersions = function(data) {
- versions = {masterSearch:{}, master:{}};
-
- versions.masterSearch.version = data.indexVersion;
- versions.masterSearch.generation = data.generation;
- versions.masterSearch.size = data.indexSize;
-
- versions.master.version = data.master.replicableVersion || '-';
- versions.master.generation = data.master.replicableGeneration || '-';
- versions.master.size = '-';
-
- return versions;
-};
-
-var getSlaveVersions = function(data) {
- versions = {masterSearch: {}, master: {}, slave: {}};
-
- versions.slave.version = data.indexVersion;
- versions.slave.generation = data.generation;
- versions.slave.size = data.indexSize;
-
- versions.master.version = data.slave.masterDetails.replicableVersion || '-';
- versions.master.generation = data.slave.masterDetails.replicableGeneration || '-';
- versions.master.size = '-';
-
- versions.masterSearch.version = data.slave.masterDetails.indexVersion;
- versions.masterSearch.generation = data.slave.masterDetails.generation;
- versions.masterSearch.size = data.slave.masterDetails.indexSize;
-
- versions.changedVersion = data.indexVersion !== data.slave.masterDetails.indexVersion;
- versions.changedGeneration = data.generation !== data.slave.masterDetails.generation;
-
- return versions;
-};
-
-var parseDateToEpoch = function(date) {
- // ["Sat Mar 03 11:00:00 CET 2012", "Sat", "Mar", "03", "11:00:00", "CET", "2012"]
- var parts = date.match( /^(\w+)\s+(\w+)\s+(\d+)\s+(\d+\:\d+\:\d+)\s+(\w+)\s+(\d+)$/ );
-
- // "Sat Mar 03 2012 10:37:33"
- var d = new Date( parts[1] + ' ' + parts[2] + ' ' + parts[3] + ' ' + parts[6] + ' ' + parts[4] );
- return d.getTime();
-}
-
-var parseSeconds = function(time) {
- var seconds = 0;
- var arr = new String(time || '').split('.');
- var parts = arr[0].split(':').reverse();
-
- for (var i = 0; i < parts.length; i++) {
- seconds += ( parseInt(parts[i], 10) || 0 ) * Math.pow(60, i);
- }
-
- if (arr[1] && 5 <= parseInt(arr[1][0], 10)) {
- seconds++; // treat more or equal than .5 as additional second
-
- }
-
- return seconds;
-}
-
-var getSlaveSettings = function(data) {
- var settings = {};
- settings.masterUrl = data.slave.masterUrl;
- settings.isPollingDisabled = data.slave.isPollingDisabled == 'true';
- settings.pollInterval = data.slave.pollInterval;
- settings.isReplicating = data.slave.isReplicating == 'true';
- settings.nextExecutionAt = data.slave.nextExecutionAt;
-
- if(settings.isReplicating) {
- settings.isApprox = true;
- settings.tick = parseSeconds(settings.pollInterval);
- } else if (!settings.isPollingDisabled && settings.pollInterval) {
- if( settings.nextExecutionAt ) {
- settings.nextExecutionAtEpoch = parseDateToEpoch(settings.nextExecutionAt);
- settings.currentTime = parseDateToEpoch(data.slave.currentDate);
-
- if( settings.nextExecutionAtEpoch > settings.currentTime) {
- settings.isApprox = false;
- settings.tick = ( settings.nextExecutionAtEpoch - settings.currentTime) / 1000;
- }
- }
- }
- return settings;
-};
-
-var getMasterSettings = function(details, isSlave) {
- var master = {};
- var masterData = isSlave ? details.slave.masterDetails.master : details.master;
- master.replicationEnabled = masterData.replicationEnabled == "true";
- master.replicateAfter = masterData.replicateAfter.join(", ");
-
- if (masterData.confFiles) {
- master.files = [];
- var confFiles = masterData.confFiles.split(',');
- for (var i=0; i<confFiles.length; i++) {
- var file = confFiles[i];
- var short = file;
- var title = file;
- if (file.indexOf(":")>=0) {
- title = file.replace(':', ' ยป ');
- var parts = file.split(':');
- if (isSlave) {
- short = parts[1];
- } else {
- short = parts[0];
- }
- }
- master.files.push({title:title, name:short});
- }
- }
- return master;
-}