-
Notifications
You must be signed in to change notification settings - Fork 0
/
test_failover.js
86 lines (77 loc) · 2.32 KB
/
test_failover.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
console.log('in test_failover.js');
$(document).ready(() => {
updateStatus();
});
function goPrime() {
updateStatus();
}
function goBackup() {
updateStatus();
}
function reporting(pages) {
let text = '';
for(var pageID in pages) {
let page = pages[pageID];
text += `ID: ${page.pageID}, description: ${page.description}, status: ${page.status}<br>`;
}
$('#report-result').html(text);
}
function commandResult(command, result) {
switch(command) {
case 'register': $('#register-result').html(result); updatePage(); break;
case 'unregister': $('#unregister-result').html(result); updatePage(); break;
case 'go prime': $('goprime-result').html(result); break;
case 'go backup': $('gobackup-result').html(result); break;
}
updateStatus();
}
$('#register').on('click', function(ev) {
let description = getPageDescription();
Failover.register(description, goPrime, goBackup, reporting, commandResult);
});
$('#unregister').on('click', function(ev) {
Failover.unregister();
updatePage();
updateStatus();
})
$('#goprime').on('click', function(ev) {
Failover.setPrime();
})
$('#gobackup').on('click', function(ev) {
Failover.setBackup();
})
$('#rogueprime').on('click', function(ev) {
Failover.page.setStatus("i am prime");
updateStatus();
})
$('#report').on('click', function(ev) {
Failover.getReporting();
});
function getPageDescription() {
let description = $('#page-description').val();
return description;
}
function updateStatus() {
$('#page-status').removeClass('bg-success bg-warning bg-secondary text-white text-black')
let page = Failover.page;
if(page) {
let status = page.getStatus();
if(status == 'i am prime') {
$('#page-status').html('I am Prime').addClass('bg-success text-white')
} else if(status == 'i am backup') {
$('#page-status').html('I am Backup').addClass('bg-warning text-black');
}
} else {
$('#page-status').html('Unregistered').addClass('bg-secondary text-white')
}
}
function updatePage() {
let page = Failover.page;
if(page) {
$('#page-description').val(page.getDescription());
$('#page-id').val(page.getID());
} else {
$('#page-description').val('');
$('#page-id').val('');
}
}