2021-03-04 05:53:27 +00:00
$ ( function ( ) {
$ ( "select" ) . selectmenu ( {
width : 180
} ) ;
var ipformat = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/ ;
2022-06-02 09:08:37 +00:00
$ ( "#interface" ) . autocomplete ( {
source : function ( request , response ) {
$ . ajax ( {
url : "options.py" ,
data : {
showif : 1 ,
serv : $ ( "#master" ) . val ( ) ,
token : $ ( '#token' ) . val ( )
} ,
success : function ( data ) {
data = data . replace ( /\s+/g , ' ' ) ;
if ( data . indexOf ( 'error:' ) != '-1' || data . indexOf ( 'Failed' ) != '-1' ) {
toastr . error ( data ) ;
2023-03-27 09:49:53 +00:00
} else if ( data == '' ) {
var select _server = $ ( '#translate' ) . attr ( 'data-select_server' ) ;
toastr . warning ( select _server ) ;
2022-06-02 09:08:37 +00:00
} else {
response ( data . split ( " " ) ) ;
}
}
} ) ;
} ,
autoFocus : true ,
minLength : - 1
} ) ;
$ ( "#interface-add" ) . autocomplete ( {
source : function ( request , response ) {
$ . ajax ( {
url : "options.py" ,
data : {
showif : 1 ,
serv : $ ( "#master-add" ) . val ( ) ,
token : $ ( '#token' ) . val ( )
} ,
success : function ( data ) {
data = data . replace ( /\s+/g , ' ' ) ;
if ( data . indexOf ( 'error:' ) != '-1' || data . indexOf ( 'Failed' ) != '-1' ) {
2022-11-20 07:48:15 +00:00
var p _err = show _pretty _ansible _error ( data ) ;
toastr . error ( p _err ) ;
2023-03-27 09:49:53 +00:00
} else if ( data == '' ) {
var select _server = $ ( '#translate' ) . attr ( 'data-select_server' ) ;
toastr . warning ( select _server ) ;
2022-06-02 09:08:37 +00:00
} else {
response ( data . split ( " " ) ) ;
}
}
} ) ;
} ,
autoFocus : true ,
minLength : - 1
} ) ;
$ ( "#slave_interface" ) . autocomplete ( {
source : function ( request , response ) {
$ . ajax ( {
url : "options.py" ,
data : {
showif : 1 ,
serv : $ ( "#slave" ) . val ( ) ,
token : $ ( '#token' ) . val ( )
} ,
success : function ( data ) {
data = data . replace ( /\s+/g , ' ' ) ;
if ( data . indexOf ( 'error:' ) != '-1' || data . indexOf ( 'Failed' ) != '-1' ) {
2022-11-20 07:48:15 +00:00
var p _err = show _pretty _ansible _error ( data ) ;
toastr . error ( p _err ) ;
2023-03-27 09:49:53 +00:00
} else if ( data == '' ) {
var select _server = $ ( '#translate' ) . attr ( 'data-select_server' ) ;
toastr . warning ( select _server ) ;
2022-06-02 09:08:37 +00:00
} else {
response ( data . split ( " " ) ) ;
}
}
} ) ;
} ,
autoFocus : true ,
minLength : - 1
} ) ;
$ ( "#slave_interface-add" ) . autocomplete ( {
source : function ( request , response ) {
$ . ajax ( {
url : "options.py" ,
data : {
showif : 1 ,
2023-03-27 09:49:53 +00:00
serv : $ ( "#slave-add" ) . val ( ) ,
2022-06-02 09:08:37 +00:00
token : $ ( '#token' ) . val ( )
} ,
success : function ( data ) {
data = data . replace ( /\s+/g , ' ' ) ;
if ( data . indexOf ( 'error:' ) != '-1' || data . indexOf ( 'Failed' ) != '-1' ) {
toastr . error ( data ) ;
2023-03-27 09:49:53 +00:00
} else if ( data == '' ) {
var select _server = $ ( '#translate' ) . attr ( 'data-select_server' ) ;
toastr . warning ( select _server ) ;
2022-06-02 09:08:37 +00:00
} else {
response ( data . split ( " " ) ) ;
}
}
} ) ;
} ,
autoFocus : true ,
minLength : - 1
} ) ;
2023-03-31 17:37:26 +00:00
var server _creating _title = $ ( "#server_creating" ) . attr ( 'title' ) ;
2021-03-05 05:02:52 +00:00
var server _creating = $ ( "#server_creating" ) . dialog ( {
autoOpen : false ,
width : 574 ,
modal : true ,
2023-03-31 17:37:26 +00:00
title : server _creating _title ,
2021-03-05 05:02:52 +00:00
buttons : {
Close : function ( ) {
$ ( this ) . dialog ( "close" ) ;
cleanProvisioningProccess ( '#server_creating ul li' , '#created-mess' , '#creating-error' , '#creating-warning' , '#creating-progress' , '#creating-master' , '#creating-slave' , '#haproxy_installing_div' , '#nginx_installing_div' ) ;
$ ( '#wait_mess' ) . show ( ) ;
}
}
} ) ;
2023-03-31 17:37:26 +00:00
var address _creating _title = $ ( "#server_creating" ) . attr ( 'title' ) ;
2021-03-05 05:02:52 +00:00
var address _add = $ ( "#address_creating" ) . dialog ( {
autoOpen : false ,
width : 574 ,
modal : true ,
2023-03-31 17:37:26 +00:00
title : address _creating _title ,
2021-03-05 05:02:52 +00:00
buttons : {
Close : function ( ) {
$ ( this ) . dialog ( "close" ) ;
cleanProvisioningProccess ( '#address_creating ul li' , '#created-mess-add' , '#creating-error' , '#creating-warning-add' , '#creating-progress-add' , '#creating-master-add' , '#creating-slave-add' , '' , '' ) ;
$ ( '#wait_mess-add' ) . show ( ) ;
}
}
} ) ;
2021-03-04 05:53:27 +00:00
$ ( '#add-vrrp' ) . click ( function ( ) {
var kp = 0 ;
if ( $ ( '#kp' ) . is ( ':checked' ) ) {
kp = '1' ;
} else {
kp = '0' ;
}
$ ( "#ajax" ) . html ( '' )
2022-06-02 09:08:37 +00:00
if ( $ ( "#master-add" ) . val ( ) == "" ) {
toastr . warning ( 'Select a Master server' ) ;
} else if ( $ ( "#slave-add" ) . val ( ) == "" ) {
toastr . warning ( 'Select a Slave server' ) ;
} else if ( $ ( "#interface-add" ) . val ( ) == "" ) {
toastr . warning ( 'Please enter the master interface name' )
} else if ( $ ( "#vrrp-ip-add" ) . val ( ) == "" ) {
toastr . warning ( 'Please enter IP in "VRRP IP" field' )
} else if ( ! $ ( "#vrrp-ip-add" ) . val ( ) . match ( ipformat ) ) {
toastr . warning ( 'Please enter IP in "VRRP IP" field' )
} else if ( $ ( "#slave_interface-add" ) == '' ) {
toastr . warning ( 'Please enter the slave interface name' )
} else {
$ ( "#wait-mess-add" ) . html ( wait _mess ) ;
address _add . dialog ( 'open' ) ;
const router _id = randomIntFromInterval ( 1 , 255 ) ;
add _master _addr ( kp , router _id ) ;
$ . getScript ( "/inc/fontawesome.min.js" ) ;
add _slave _addr ( kp , router _id ) ;
}
2021-03-04 05:53:27 +00:00
} ) ;
$ ( '#create' ) . click ( function ( ) {
var hap = 0 ;
var nginx = 0 ;
var syn _flood = 0 ;
if ( $ ( '#hap' ) . is ( ':checked' ) ) {
hap = '1' ;
}
if ( $ ( '#nginx' ) . is ( ':checked' ) ) {
nginx = '1' ;
}
if ( $ ( '#syn_flood' ) . is ( ':checked' ) ) {
syn _flood = '1' ;
}
$ ( "#ajax" ) . html ( '' )
2022-06-02 09:08:37 +00:00
if ( $ ( "#master" ) . val ( ) === null ) {
toastr . warning ( 'Select a Master server' ) ;
} else if ( $ ( "#slave" ) . val ( ) === null ) {
toastr . warning ( 'Select a Slave server' ) ;
} else if ( $ ( "#interface" ) . val ( ) == "" ) {
toastr . warning ( 'Please enter the master interface name' ) ;
} else if ( $ ( "#vrrp-ip" ) . val ( ) == "" ) {
toastr . warning ( 'Please enter IP in "VRRP IP" field' ) ;
} else if ( ! $ ( "#vrrp-ip" ) . val ( ) . match ( ipformat ) ) {
toastr . warning ( 'Please enter IP in "VRRP IP" field' ) ;
} else if ( $ ( "#slave_interface" ) . val ( ) == '' ) {
toastr . warning ( 'Please enter the slave interface name' ) ;
} else if ( $ ( "#master" ) . val ( ) == $ ( "#slave" ) . val ( ) ) {
toastr . warning ( 'Master and slave must be diff servers' ) ;
} else {
2021-03-04 05:53:27 +00:00
$ ( "#wait-mess" ) . html ( wait _mess ) ;
server _creating . dialog ( 'open' ) ;
2022-06-02 09:08:37 +00:00
const router _id = randomIntFromInterval ( 1 , 255 ) ;
create _master _keepalived ( hap , nginx , syn _flood , router _id ) ;
2021-03-05 05:02:52 +00:00
$ . getScript ( "/inc/fontawesome.min.js" ) ;
2022-06-02 09:08:37 +00:00
create _slave _keepalived ( hap , nginx , syn _flood , router _id ) ;
2021-03-04 05:53:27 +00:00
if ( hap == '1' ) {
$ ( '#haproxy_installing_div' ) . show ( ) ;
}
if ( nginx == '1' ) {
$ ( '#nginx_installing_div' ) . show ( ) ;
}
}
} ) ;
2021-10-04 07:40:59 +00:00
$ ( '#hap' ) . click ( function ( ) {
if ( $ ( '#hap' ) . is ( ':checked' ) ) {
$ ( '#haproxy_docker_td' ) . show ( ) ;
$ ( '#haproxy_docker_td_header' ) . show ( ) ;
} else {
$ ( '#haproxy_docker_td' ) . hide ( ) ;
$ ( '#haproxy_docker_td_header' ) . hide ( ) ;
}
} ) ;
$ ( '#nginx' ) . click ( function ( ) {
if ( $ ( '#nginx' ) . is ( ':checked' ) ) {
$ ( '#nginx_docker_td' ) . show ( ) ;
$ ( '#nginx_docker_td_header' ) . show ( ) ;
} else {
$ ( '#nginx_docker_td' ) . hide ( ) ;
$ ( '#nginx_docker_td_header' ) . hide ( ) ;
}
} ) ;
2022-02-02 20:23:33 +00:00
$ ( "#master" ) . on ( 'selectmenuchange' , function ( ) {
$ . ajax ( {
url : "options.py" ,
data : {
get _keepalived _v : 1 ,
serv : $ ( '#master option:selected' ) . val ( ) ,
token : $ ( '#token' ) . val ( )
} ,
type : "POST" ,
success : function ( data ) {
data = data . replace ( /^\s+|\s+$/g , '' ) ;
2022-11-20 07:48:15 +00:00
if ( data . indexOf ( 'error:' ) != '-1' ) {
var p _err = show _pretty _ansible _error ( data ) ;
toastr . error ( p _err ) ;
} else if ( data . indexOf ( 'keepalived:' ) != '-1' ) {
2022-02-02 20:23:33 +00:00
$ ( '#cur_master_ver' ) . text ( 'Keepalived has not installed' ) ;
$ ( '#create' ) . attr ( 'title' , 'Create HA cluster' ) ;
} else {
$ ( '#cur_master_ver' ) . text ( data ) ;
$ ( '#cur_master_ver' ) . css ( 'font-weight' , 'bold' ) ;
}
}
} ) ;
} ) ;
$ ( "#slave" ) . on ( 'selectmenuchange' , function ( ) {
$ . ajax ( {
url : "options.py" ,
data : {
get _keepalived _v : 1 ,
serv : $ ( '#slave option:selected' ) . val ( ) ,
token : $ ( '#token' ) . val ( )
} ,
type : "POST" ,
success : function ( data ) {
data = data . replace ( /^\s+|\s+$/g , '' ) ;
2022-11-20 07:48:15 +00:00
if ( data . indexOf ( 'error:' ) != '-1' ) {
var p _err = show _pretty _ansible _error ( data ) ;
toastr . error ( p _err ) ;
} else if ( data . indexOf ( 'keepalived:' ) != '-1' ) {
2022-02-02 20:23:33 +00:00
$ ( '#cur_slave_ver' ) . text ( 'Keepalived has not installed' ) ;
$ ( '#create' ) . attr ( 'title' , 'Create HA cluster' ) ;
} else {
$ ( '#cur_slave_ver' ) . text ( data ) ;
$ ( '#cur_slave_ver' ) . css ( 'font-weight' , 'bold' ) ;
}
}
} ) ;
} ) ;
$ ( "#master-add" ) . on ( 'selectmenuchange' , function ( ) {
$ . ajax ( {
url : "options.py" ,
data : {
get _keepalived _v : 1 ,
serv : $ ( '#master-add option:selected' ) . val ( ) ,
token : $ ( '#token' ) . val ( )
} ,
type : "POST" ,
success : function ( data ) {
data = data . replace ( /^\s+|\s+$/g , '' ) ;
2022-11-20 07:48:15 +00:00
if ( data . indexOf ( 'error:' ) != '-1' ) {
var p _err = show _pretty _ansible _error ( data ) ;
toastr . error ( p _err ) ;
} else if ( data . indexOf ( 'keepalived:' ) != '-1' ) {
2022-02-02 20:23:33 +00:00
$ ( '#cur_master_ver-add' ) . text ( 'Keepalived has not installed' ) ;
$ ( '#add-vrrp' ) . attr ( 'title' , 'Add a HA configuration' ) ;
} else {
$ ( '#cur_master_ver-add' ) . text ( data ) ;
$ ( '#cur_master_ver-add' ) . css ( 'font-weight' , 'bold' ) ;
}
}
} ) ;
} ) ;
$ ( "#slave-add" ) . on ( 'selectmenuchange' , function ( ) {
$ . ajax ( {
url : "options.py" ,
data : {
get _keepalived _v : 1 ,
serv : $ ( '#slave-add option:selected' ) . val ( ) ,
token : $ ( '#token' ) . val ( )
} ,
type : "POST" ,
success : function ( data ) {
data = data . replace ( /^\s+|\s+$/g , '' ) ;
2022-11-20 07:48:15 +00:00
if ( data . indexOf ( 'error:' ) != '-1' ) {
var p _err = show _pretty _ansible _error ( data ) ;
toastr . error ( p _err ) ;
} else if ( data . indexOf ( 'keepalived:' ) != '-1' ) {
2022-02-02 20:23:33 +00:00
$ ( '#cur_slave_ver-add' ) . text ( 'Keepalived has not installed' ) ;
$ ( '#add-vrrp' ) . attr ( 'title' , 'Add a HA configuration' ) ;
} else {
$ ( '#cur_slave_ver-add' ) . text ( data ) ;
$ ( '#cur_slave_ver-add' ) . css ( 'font-weight' , 'bold' ) ;
}
}
} ) ;
} ) ;
2021-03-04 05:53:27 +00:00
} ) ;
2022-06-02 09:08:37 +00:00
function add _master _addr ( kp , router _id ) {
2022-02-02 20:23:33 +00:00
return _to _master = 0
if ( $ ( '#add_return_to_master' ) . is ( ':checked' ) ) {
return _to _master = '1' ;
}
2021-03-05 05:02:52 +00:00
$ . ajax ( {
url : "options.py" ,
data : {
masteradd : $ ( '#master-add' ) . val ( ) ,
slaveadd : $ ( '#slave-add' ) . val ( ) ,
interfaceadd : $ ( "#interface-add" ) . val ( ) ,
2022-06-02 09:08:37 +00:00
slave _interfaceadd : $ ( "#slave_interface-add" ) . val ( ) ,
2021-03-05 05:02:52 +00:00
vrrpipadd : $ ( '#vrrp-ip-add' ) . val ( ) ,
2022-02-02 20:23:33 +00:00
return _to _master : return _to _master ,
2021-03-05 05:02:52 +00:00
kp : kp ,
2022-06-02 09:08:37 +00:00
router _id : router _id ,
2021-03-05 05:02:52 +00:00
token : $ ( '#token' ) . val ( )
} ,
type : "POST" ,
success : function ( data ) {
data = data . replace ( /\s+/g , ' ' ) ;
2021-10-17 05:57:51 +00:00
if ( data . indexOf ( 'error:' ) != '-1' || data . indexOf ( 'UNREACHABLE' ) != '-1' || data . indexOf ( 'FAILED' ) != '-1' ) {
2022-11-20 07:48:15 +00:00
var p _err = show _pretty _ansible _error ( data ) ;
showProvisioningError ( p _err + '<br><br>' , '#creating-master-add' , '#wait-mess-add' , '#creating-error-add' ) ;
2021-03-05 05:02:52 +00:00
} else if ( data == '' ) {
showProvisioningWarning ( '#creating-master-add' , 'master Keepalived' , '#creating-warning-add' , '#wait_mess-add' ) ;
} else if ( data . indexOf ( 'success' ) != '-1' ) {
showProvisioningProccess ( '<p>' + data + '</p>' , '#creating-master-add' , '50' , '#creating-progress-add' , '#created-mess-add' , '#wait-mess-add' ) ;
}
}
} ) ;
}
2022-06-02 09:08:37 +00:00
function add _slave _addr ( kp , router _id ) {
2021-03-05 05:02:52 +00:00
$ . ajax ( {
url : "options.py" ,
data : {
masteradd _slave : $ ( '#master-add' ) . val ( ) ,
slaveadd : $ ( '#slave-add' ) . val ( ) ,
interfaceadd : $ ( "#interface-add" ) . val ( ) ,
2022-06-02 09:08:37 +00:00
slave _interfaceadd : $ ( "#slave_interface-add" ) . val ( ) ,
2021-03-05 05:02:52 +00:00
vrrpipadd : $ ( '#vrrp-ip-add' ) . val ( ) ,
kp : kp ,
2022-06-02 09:08:37 +00:00
router _id : router _id ,
2021-03-05 05:02:52 +00:00
token : $ ( '#token' ) . val ( )
} ,
type : "POST" ,
success : function ( data ) {
data = data . replace ( /\s+/g , ' ' ) ;
2021-10-17 05:57:51 +00:00
if ( data . indexOf ( 'error:' ) != '-1' || data . indexOf ( 'UNREACHABLE' ) != '-1' || data . indexOf ( 'FAILED' ) != '-1' ) {
2022-11-20 07:48:15 +00:00
var p _err = show _pretty _ansible _error ( data ) ;
showProvisioningError ( p _err + '<br><br>' , '#creating-slave-add' , '#wait-mess-add' , '#creating-error-add' ) ;
2021-03-05 05:02:52 +00:00
} else if ( data == '' ) {
showProvisioningWarning ( '#creating-slave-add' , 'master Keepalived' , '#creating-warning-add' , '#wait_mess-add' ) ;
} else if ( data . indexOf ( 'success' ) != '-1' ) {
showProvisioningProccess ( '<p>' + data + '</p>' , '#creating-slave-add' , '100' , '#creating-progress-add' , '#created-mess-add' , '#wait-mess-add' ) ;
}
}
} ) ;
}
2022-06-02 09:08:37 +00:00
function create _master _keepalived ( hap , nginx , syn _flood , router _id ) {
2021-03-04 05:53:27 +00:00
if ( hap == '0' && nginx == '0' ) {
var progress _value = '50' ;
} else if ( hap == '1' || nginx == '0' ) {
2023-05-17 17:38:13 +00:00
var progress _value = '25' ;
2021-03-04 05:53:27 +00:00
} else if ( hap == '1' && nginx == '1' ) {
2023-05-17 17:38:13 +00:00
var progress _value = '16.6' ;
2021-03-04 05:53:27 +00:00
}
2021-07-15 03:14:13 +00:00
var virt _server = 0 ;
2021-10-04 07:40:59 +00:00
var haproxy _docker = 0 ;
var nginx _docker = 0 ;
2022-02-02 20:23:33 +00:00
var return _to _master = 0 ;
2021-07-15 03:14:13 +00:00
if ( $ ( '#virt_server' ) . is ( ':checked' ) ) {
virt _server = '1' ;
}
2021-10-04 07:40:59 +00:00
if ( $ ( '#hap_docker' ) . is ( ':checked' ) ) {
haproxy _docker = '1' ;
}
if ( $ ( '#nginx_docker' ) . is ( ':checked' ) ) {
nginx _docker = '1' ;
}
2022-02-02 20:23:33 +00:00
if ( $ ( '#return_to_master' ) . is ( ':checked' ) ) {
return _to _master = '1' ;
}
2021-03-04 05:53:27 +00:00
$ . ajax ( {
url : "options.py" ,
data : {
master : $ ( '#master' ) . val ( ) ,
slave : $ ( '#slave' ) . val ( ) ,
interface : $ ( "#interface" ) . val ( ) ,
2022-06-02 09:08:37 +00:00
slave _interface : $ ( "#slave_interface" ) . val ( ) ,
2021-03-04 05:53:27 +00:00
vrrpip : $ ( '#vrrp-ip' ) . val ( ) ,
2022-02-02 20:23:33 +00:00
return _to _master : return _to _master ,
2021-03-04 05:53:27 +00:00
hap : hap ,
nginx : nginx ,
syn _flood : syn _flood ,
2021-07-15 03:14:13 +00:00
virt _server : virt _server ,
2022-06-02 09:08:37 +00:00
router _id : router _id ,
2021-03-04 05:53:27 +00:00
token : $ ( '#token' ) . val ( )
} ,
type : "POST" ,
success : function ( data ) {
data = data . replace ( /\s+/g , ' ' ) ;
2021-08-24 10:25:34 +00:00
if ( data . indexOf ( 'error:' ) != '-1' || data . indexOf ( 'FAILED' ) != '-1' || data . indexOf ( 'UNREACHABLE' ) != '-1' ) {
2022-11-20 07:48:15 +00:00
var p _err = show _pretty _ansible _error ( data ) ;
showProvisioningError ( p _err + '<br><br>' , '#creating-master' , '#wait-mess' , '#creating-error' ) ;
2021-03-04 05:53:27 +00:00
} else if ( data == '' ) {
2021-03-05 05:02:52 +00:00
showProvisioningWarning ( step _id , 'master Keepalived' , '#creating-warning' , '#wait_mess' ) ;
2021-03-04 05:53:27 +00:00
} else if ( data . indexOf ( 'success' ) != '-1' ) {
2021-03-05 05:02:52 +00:00
showProvisioningProccess ( '<p>' + data + '</p>' , '#creating-master' , progress _value , '#creating-progress' , '#created-mess' , '#wait-mess' ) ;
2022-02-02 20:23:33 +00:00
$ ( "#master" ) . trigger ( "selectmenuchange" ) ;
2021-03-04 05:53:27 +00:00
if ( hap === '1' ) {
2021-10-04 07:40:59 +00:00
create _keep _alived _hap ( nginx , 'master' , haproxy _docker ) ;
2021-03-04 05:53:27 +00:00
}
if ( hap == '0' && nginx == '1' ) {
2023-05-17 17:38:13 +00:00
create _keep _alived _nginx ( hap , 'master' , nginx _docker ) ;
2021-03-04 05:53:27 +00:00
}
} else {
toastr . clear ( ) ;
toastr . info ( data ) ;
}
}
} ) ;
}
2022-06-02 09:08:37 +00:00
function create _slave _keepalived ( hap , nginx , syn _flood , router _id ) {
2021-03-04 05:53:27 +00:00
if ( hap == '0' && nginx == '0' ) {
2023-05-17 17:38:13 +00:00
var progress _value = '50' ;
2021-03-04 05:53:27 +00:00
} else if ( hap == '1' || nginx == '0' ) {
2023-05-17 17:38:13 +00:00
var progress _value = '25' ;
2021-03-04 05:53:27 +00:00
} else if ( hap == '1' && nginx == '1' ) {
2023-05-17 17:38:13 +00:00
var progress _value = '16.6' ;
2021-03-04 05:53:27 +00:00
}
2022-04-18 13:24:13 +00:00
var haproxy _docker = 0 ;
var nginx _docker = 0 ;
if ( $ ( '#hap_docker' ) . is ( ':checked' ) ) {
haproxy _docker = '1' ;
}
if ( $ ( '#nginx_docker' ) . is ( ':checked' ) ) {
nginx _docker = '1' ;
}
2021-03-04 05:53:27 +00:00
$ . ajax ( {
url : "options.py" ,
data : {
master _slave : $ ( '#master' ) . val ( ) ,
slave : $ ( '#slave' ) . val ( ) ,
interface : $ ( "#interface" ) . val ( ) ,
2022-06-02 09:08:37 +00:00
slave _interface : $ ( "#slave_interface" ) . val ( ) ,
2021-03-04 05:53:27 +00:00
vrrpip : $ ( '#vrrp-ip' ) . val ( ) ,
hap : hap ,
nginx : nginx ,
syn _flood : syn _flood ,
2022-06-02 09:08:37 +00:00
router _id : router _id ,
2021-03-04 05:53:27 +00:00
token : $ ( '#token' ) . val ( )
} ,
type : "POST" ,
success : function ( data ) {
data = data . replace ( /\s+/g , ' ' ) ;
2021-08-24 10:25:34 +00:00
if ( data . indexOf ( 'error:' ) != '-1' || data . indexOf ( 'FAILED' ) != '-1' || data . indexOf ( 'UNREACHABLE' ) != '-1' ) {
2022-11-20 07:48:15 +00:00
var p _err = show _pretty _ansible _error ( data ) ;
showProvisioningError ( p _err + '<br><br>' , '#creating-slave' , '#wait-mess' , '#creating-error' ) ;
2021-03-04 05:53:27 +00:00
} else if ( data == '' ) {
2021-03-05 05:02:52 +00:00
showProvisioningWarning ( step _id , 'slave Keepalived' , '#creating-warning' , '#wait_mess' ) ;
2021-03-04 05:53:27 +00:00
} else if ( data . indexOf ( 'success' ) != '-1' ) {
2021-03-05 05:02:52 +00:00
showProvisioningProccess ( '<p>' + data + '</p>' , '#creating-slave' , progress _value , '#creating-progress' , '#created-mess' , '#wait-mess' ) ;
2022-02-02 20:23:33 +00:00
$ ( "#slave" ) . trigger ( "selectmenuchange" ) ;
2021-03-04 05:53:27 +00:00
} else {
toastr . clear ( ) ;
toastr . info ( data ) ;
}
if ( hap === '1' ) {
2022-04-18 13:24:13 +00:00
create _keep _alived _hap ( nginx , 'slave' , haproxy _docker ) ;
2021-03-04 05:53:27 +00:00
}
if ( hap == '0' && nginx == '1' ) {
2023-05-17 17:38:13 +00:00
create _keep _alived _nginx ( hap , 'slave' , nginx _docker ) ;
2021-03-04 05:53:27 +00:00
}
}
} ) ;
}
2021-10-04 07:40:59 +00:00
function create _keep _alived _hap ( nginx , server , docker ) {
2021-03-04 05:53:27 +00:00
if ( nginx == '0' ) {
2023-05-17 17:38:13 +00:00
var progress _value = '25' ;
2021-03-04 05:53:27 +00:00
} else if ( nginx == '1' ) {
2023-05-17 17:38:13 +00:00
var progress _value = '16.6' ;
2021-03-04 05:53:27 +00:00
}
if ( server === 'master' ) {
var step _id = '#creating-haproxy-master' ;
var install _step = 'master Haproxy' ;
} else {
var step _id = '#creating-haproxy-slave' ;
var install _step = 'slave Haproxy' ;
}
$ ( step _id ) . addClass ( 'proccessing' ) ;
$ . ajax ( {
url : "options.py" ,
data : {
master _slave _hap : $ ( '#master' ) . val ( ) ,
slave : $ ( '#slave' ) . val ( ) ,
server : server ,
2021-10-04 07:40:59 +00:00
docker : docker ,
2021-03-04 05:53:27 +00:00
token : $ ( '#token' ) . val ( )
} ,
type : "POST" ,
success : function ( data ) {
data = data . replace ( /\s+/g , ' ' ) ;
2021-08-24 10:25:34 +00:00
if ( data . indexOf ( 'error:' ) != '-1' || data . indexOf ( 'FAILED' ) != '-1' || data . indexOf ( 'UNREACHABLE' ) != '-1' ) {
2022-11-20 07:48:15 +00:00
var p _err = show _pretty _ansible _error ( data ) ;
showProvisioningError ( p _err + '<br><br>' , step _id , '#wait-mess' , '#creating-error' ) ;
2021-03-04 05:53:27 +00:00
} else if ( data == '' ) {
2021-03-05 05:02:52 +00:00
showProvisioningWarning ( step _id , install _step , '#creating-warning' , '#wait_mess' ) ;
2021-03-04 05:53:27 +00:00
} else if ( data . indexOf ( 'success' ) != '-1' ) {
2021-03-05 05:02:52 +00:00
showProvisioningProccess ( '<br>' + data , step _id , progress _value , '#creating-progress' , '#created-mess' , '#wait-mess' ) ;
2021-03-04 05:53:27 +00:00
} else {
toastr . clear ( ) ;
toastr . info ( data ) ;
}
if ( nginx == '1' ) {
2023-05-17 17:38:13 +00:00
create _keep _alived _nginx ( hap , server , docker )
2021-03-04 05:53:27 +00:00
}
}
} ) ;
}
2023-05-17 17:38:13 +00:00
function create _keep _alived _nginx ( hap , server , docker ) {
if ( hap == '0' ) {
var progress _value = '25' ;
} else if ( hap == '1' ) {
var progress _value = '16.6' ;
}
2021-03-04 05:53:27 +00:00
if ( server === 'master' ) {
var step _id = '#creating-nginx-master' ;
var install _step = 'master Nginx' ;
} else {
var step _id = '#creating-nginx-slave' ;
var install _step = 'slave Nginx' ;
}
$ ( step _id ) . addClass ( 'proccessing' ) ;
$ . ajax ( {
url : "options.py" ,
data : {
master _slave _nginx : $ ( '#master' ) . val ( ) ,
slave : $ ( '#slave' ) . val ( ) ,
server : server ,
2021-10-04 07:40:59 +00:00
docker : docker ,
2021-03-04 05:53:27 +00:00
token : $ ( '#token' ) . val ( )
} ,
type : "POST" ,
success : function ( data ) {
data = data . replace ( /\s+/g , ' ' ) ;
2021-08-24 10:25:34 +00:00
if ( data . indexOf ( 'error:' ) != '-1' || data . indexOf ( 'FAILED' ) != '-1' || data . indexOf ( 'UNREACHABLE' ) != '-1' ) {
2022-11-20 07:48:15 +00:00
var p _err = show _pretty _ansible _error ( data ) ;
showProvisioningError ( p _err + '<br><br>' , step _id , '#wait-mess' , '#creating-error' ) ;
2021-03-04 05:53:27 +00:00
} else if ( data == '' ) {
2021-03-05 05:02:52 +00:00
showProvisioningWarning ( step _id , install _step , '#creating-warning' , '#wait_mess' ) ;
2021-03-04 05:53:27 +00:00
} else if ( data . indexOf ( 'success' ) != '-1' ) {
2023-05-17 17:38:13 +00:00
showProvisioningProccess ( '<br>' + data , step _id , progress _value , '#creating-progress' , '#created-mess' , '#wait-mess' ) ;
2021-03-04 05:53:27 +00:00
} else {
toastr . clear ( ) ;
toastr . info ( data ) ;
}
}
} ) ;
}
function showProvisioningError ( data , step _id , wait _mess , error _id ) {
$ ( wait _mess ) . hide ( ) ;
$ ( error _id ) . append ( data ) ;
$ ( error _id ) . show ( ) ;
$ ( step _id ) . removeClass ( 'proccessing' ) ;
$ ( step _id ) . addClass ( 'processing_error' ) ;
$ . getScript ( "/inc/fontawesome.min.js" ) ;
}
2021-03-05 05:02:52 +00:00
function showProvisioningWarning ( step _id , install _step , warning _id , wait _id ) {
2023-02-13 14:45:45 +00:00
var something _wrong = $ ( '#translate' ) . attr ( 'data-something_wrong' ) ;
var check _logs = $ ( '#translate' ) . attr ( 'data-check_logs' ) ;
$ ( warning _id ) . append ( '<p>' + something _wrong + ' ' + install _step + ', ' + check _logs + '</p>' ) ;
2021-03-05 05:02:52 +00:00
$ ( warning _id ) . show ( ) ;
2021-03-04 05:53:27 +00:00
$ ( step _id ) . removeClass ( 'proccessing' ) ;
$ ( step _id ) . addClass ( 'processing_warning' ) ;
2021-03-05 05:02:52 +00:00
$ ( wait _id ) . hide ( ) ;
2021-03-04 05:53:27 +00:00
$ . getScript ( "/inc/fontawesome.min.js" ) ;
}
2021-03-05 05:02:52 +00:00
function cleanProvisioningProccess ( div _id , success _div , error _id , warning _id , progres _id , keepalived _m _div , keepalived _s _div , haproxy _div , nginx _div ) {
2021-03-04 05:53:27 +00:00
$ ( success _div ) . empty ( ) ;
$ ( success _div ) . hide ( ) ;
2021-03-05 05:02:52 +00:00
$ ( error _id ) . empty ( ) ;
$ ( error _id ) . hide ( ) ;
$ ( warning _id ) . empty ( ) ;
$ ( warning _id ) . hide ( ) ;
$ ( progres _id ) . css ( 'width' , '0%' ) ;
$ ( haproxy _div ) . hide ( ) ;
$ ( nginx _div ) . hide ( ) ;
2021-03-04 05:53:27 +00:00
$ ( div _id ) . each ( function ( ) {
$ ( this ) . removeClass ( 'proccessing_done' ) ;
$ ( this ) . removeClass ( 'processing_error' ) ;
$ ( this ) . removeClass ( 'processing_warning' ) ;
$ ( this ) . removeClass ( 'proccessing' ) ;
} ) ;
2021-03-05 05:02:52 +00:00
$ ( keepalived _m _div ) . addClass ( 'proccessing' ) ;
$ ( keepalived _s _div ) . addClass ( 'proccessing' ) ;
2021-03-04 05:53:27 +00:00
$ . getScript ( "/inc/fontawesome.min.js" ) ;
}
2021-03-05 05:02:52 +00:00
function showProvisioningProccess ( data , step _id , progress _value , progress _id , created _id , waid _id ) {
2021-03-04 05:53:27 +00:00
$ ( step _id ) . addClass ( 'proccessing_done' ) ;
$ ( step _id ) . removeClass ( 'proccessing' ) ;
2021-03-05 05:02:52 +00:00
$ ( created _id ) . show ( ) ;
$ ( created _id ) . append ( data ) ;
2023-05-17 17:38:13 +00:00
var cur _proggres _value = $ ( progress _id ) . css ( 'width' ) . split ( 'px' ) [ 0 ] / $ ( progress _id ) . parent ( ) . width ( ) * 100 ;
var new _progress = parseFloat ( cur _proggres _value ) + parseFloat ( progress _value ) ;
if ( parseFloat ( new _progress ) > 84 ) {
$ ( waid _id ) . hide ( ) ;
new _progress = parseFloat ( 100 ) ;
}
$ ( progress _id ) . css ( 'width' , new _progress + '%' ) ;
2021-03-04 05:53:27 +00:00
$ . getScript ( "/inc/fontawesome.min.js" ) ;
}