Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
O
OpnSense
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Kulya
OpnSense
Commits
7786843f
Commit
7786843f
authored
9 years ago
by
Ad Schellevis
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
(legacy) refactor load_balancer_pool_edit.php
parent
eeab940d
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
338 additions
and
294 deletions
+338
-294
load_balancer_pool_edit.php
src/www/load_balancer_pool_edit.php
+338
-294
No files found.
src/www/load_balancer_pool_edit.php
View file @
7786843f
<?php
<?php
/*
/*
Copyright (C) 2014-2015
Deciso B.V.
Copyright (C) 2014-2016
Deciso B.V.
Copyright (C) 2005-2008 Bill Marquette <bill.marquette@gmail.com>.
Copyright (C) 2005-2008 Bill Marquette <bill.marquette@gmail.com>.
All rights reserved.
All rights reserved.
...
@@ -31,311 +31,355 @@ require_once("guiconfig.inc");
...
@@ -31,311 +31,355 @@ require_once("guiconfig.inc");
require_once
(
"services.inc"
);
require_once
(
"services.inc"
);
require_once
(
"interfaces.inc"
);
require_once
(
"interfaces.inc"
);
$referer
=
(
isset
(
$_SERVER
[
'HTTP_REFERER'
])
?
$_SERVER
[
'HTTP_REFERER'
]
:
'/load_balancer_pool.php'
);
if
(
!
is_array
(
$config
[
'load_balancer'
][
'lbpool'
]))
{
if
(
empty
(
$config
[
'load_balancer'
][
'lbpool'
])
||
!
is_array
(
$config
[
'load_balancer'
][
'lbpool'
]))
{
$config
[
'load_balancer'
][
'lbpool'
]
=
array
();
$config
[
'load_balancer'
][
'lbpool'
]
=
array
();
}
}
$a_pool
=
&
$config
[
'load_balancer'
][
'lbpool'
];
$a_pool
=
&
$config
[
'load_balancer'
][
'lbpool'
];
if
(
is_numericint
(
$_GET
[
'id'
]))
$id
=
$_GET
[
'id'
];
if
(
isset
(
$_POST
[
'id'
])
&&
is_numericint
(
$_POST
[
'id'
]))
$id
=
$_POST
[
'id'
];
if
(
isset
(
$id
)
&&
$a_pool
[
$id
])
{
$pconfig
[
'name'
]
=
$a_pool
[
$id
][
'name'
];
$pconfig
[
'mode'
]
=
$a_pool
[
$id
][
'mode'
];
$pconfig
[
'descr'
]
=
$a_pool
[
$id
][
'descr'
];
$pconfig
[
'port'
]
=
$a_pool
[
$id
][
'port'
];
$pconfig
[
'retry'
]
=
$a_pool
[
$id
][
'retry'
];
$pconfig
[
'servers'
]
=
&
$a_pool
[
$id
][
'servers'
];
$pconfig
[
'serversdisabled'
]
=
&
$a_pool
[
$id
][
'serversdisabled'
];
$pconfig
[
'monitor'
]
=
$a_pool
[
$id
][
'monitor'
];
}
if
(
$_POST
)
{
$copy_fields
=
array
(
'name'
,
'mode'
,
'descr'
,
'port'
,
'retry'
,
'monitor'
,
'servers'
,
'serversdisabled'
);
unset
(
$input_errors
);
if
(
$_SERVER
[
'REQUEST_METHOD'
]
===
'GET'
)
{
$pconfig
=
$_POST
;
if
(
isset
(
$_GET
[
'id'
])
&&
!
empty
(
$a_pool
[
$_GET
[
'id'
]]))
{
$id
=
$_GET
[
'id'
];
/* input validation */
}
$reqdfields
=
explode
(
" "
,
"name mode port monitor servers"
);
$pconfig
=
array
();
$reqdfieldsn
=
array
(
gettext
(
"Name"
),
gettext
(
"Mode"
),
gettext
(
"Port"
),
gettext
(
"Monitor"
),
gettext
(
"Server List"
));
// copy fields
do_input_validation
(
$_POST
,
$reqdfields
,
$reqdfieldsn
,
$input_errors
);
foreach
(
$copy_fields
as
$fieldname
)
{
if
(
isset
(
$id
)
&&
isset
(
$a_pool
[
$id
][
$fieldname
]))
{
/* Ensure that our pool names are unique */
$pconfig
[
$fieldname
]
=
$a_pool
[
$id
][
$fieldname
];
for
(
$i
=
0
;
isset
(
$config
[
'load_balancer'
][
'lbpool'
][
$i
]);
$i
++
)
}
else
{
if
((
$_POST
[
'name'
]
==
$config
[
'load_balancer'
][
'lbpool'
][
$i
][
'name'
])
&&
(
$i
!=
$id
))
$pconfig
[
$fieldname
]
=
null
;
$input_errors
[]
=
gettext
(
"This pool name has already been used. Pool names must be unique."
);
}
}
if
(
strpos
(
$_POST
[
'name'
],
" "
)
!==
false
)
$input_errors
[]
=
gettext
(
"You cannot use spaces in the 'name' field."
);
// init arrays
$pconfig
[
'servers'
]
=
is_array
(
$pconfig
[
'servers'
])
?
$pconfig
[
'servers'
]
:
array
();
if
(
in_array
(
$_POST
[
'name'
],
$reserved_table_names
))
$pconfig
[
'serversdisabled'
]
=
is_array
(
$pconfig
[
'serversdisabled'
])
?
$pconfig
[
'serversdisabled'
]
:
array
();
$input_errors
[]
=
sprintf
(
gettext
(
"The name '%s' is a reserved word and cannot be used."
),
$_POST
[
'name'
]);
}
elseif
(
$_SERVER
[
'REQUEST_METHOD'
]
===
'POST'
)
{
if
(
isset
(
$_POST
[
'id'
])
&&
!
empty
(
$a_pool
[
$_POST
[
'id'
]]))
{
if
(
is_alias
(
$_POST
[
'name'
]))
$id
=
$_POST
[
'id'
];
$input_errors
[]
=
sprintf
(
gettext
(
"Sorry, an alias is already named %s."
),
$_POST
[
'name'
]);
}
$pconfig
=
$_POST
;
if
(
!
is_portoralias
(
$_POST
[
'port'
]))
$input_errors
=
array
();
$input_errors
[]
=
gettext
(
"The port must be an integer between 1 and 65535, or a port alias."
);
/* input validation */
$reqdfields
=
explode
(
" "
,
"name mode port monitor servers"
);
// May as well use is_port as we want a positive integer and such.
$reqdfieldsn
=
array
(
gettext
(
"Name"
),
gettext
(
"Mode"
),
gettext
(
"Port"
),
gettext
(
"Monitor"
),
gettext
(
"Server List"
));
if
(
!
empty
(
$_POST
[
'retry'
])
&&
!
is_port
(
$_POST
[
'retry'
]))
$input_errors
[]
=
gettext
(
"The retry value must be an integer between 1 and 65535."
);
do_input_validation
(
$pconfig
,
$reqdfields
,
$reqdfieldsn
,
$input_errors
);
if
(
is_array
(
$_POST
[
'servers'
]))
{
/* Ensure that our pool names are unique */
foreach
(
$pconfig
[
'servers'
]
as
$svrent
)
{
for
(
$i
=
0
;
isset
(
$config
[
'load_balancer'
][
'lbpool'
][
$i
]);
$i
++
)
{
if
(
!
is_ipaddr
(
$svrent
)
&&
!
is_subnetv4
(
$svrent
))
{
if
(
$pconfig
[
'name'
]
==
$config
[
'load_balancer'
][
'lbpool'
][
$i
][
'name'
]
&&
$i
!=
$id
)
{
$input_errors
[]
=
sprintf
(
gettext
(
"%s is not a valid IP address or IPv4 subnet (in
\"
enabled
\"
list)."
),
$svrent
);
$input_errors
[]
=
gettext
(
"This pool name has already been used. Pool names must be unique."
);
}
}
else
if
(
is_subnetv4
(
$svrent
)
&&
subnet_size
(
$svrent
)
>
64
)
{
}
$input_errors
[]
=
sprintf
(
gettext
(
"%s is a subnet containing more than 64 IP addresses (in
\"
enabled
\"
list)."
),
$svrent
);
}
if
(
strpos
(
$pconfig
[
'name'
],
" "
)
!==
false
)
{
}
$input_errors
[]
=
gettext
(
"You cannot use spaces in the 'name' field."
);
}
}
if
(
is_array
(
$_POST
[
'serversdisabled'
]))
{
foreach
(
$pconfig
[
'serversdisabled'
]
as
$svrent
)
{
if
(
in_array
(
$pconfig
[
'name'
],
$reserved_table_names
))
{
if
(
!
is_ipaddr
(
$svrent
)
&&
!
is_subnetv4
(
$svrent
))
{
$input_errors
[]
=
sprintf
(
gettext
(
"The name '%s' is a reserved word and cannot be used."
),
$_POST
[
'name'
]);
$input_errors
[]
=
sprintf
(
gettext
(
"%s is not a valid IP address or IPv4 subnet (in
\"
disabled
\"
list)."
),
$svrent
);
}
}
else
if
(
is_subnetv4
(
$svrent
)
&&
subnet_size
(
$svrent
)
>
64
)
{
if
(
is_alias
(
$pconfig
[
'name'
]))
{
$input_errors
[]
=
sprintf
(
gettext
(
"%s is a subnet containing more than 64 IP addresses (in
\"
disabled
\"
list)."
),
$svrent
);
$input_errors
[]
=
sprintf
(
gettext
(
"Sorry, an alias is already named %s."
),
$_POST
[
'name'
]);
}
}
}
}
if
(
!
is_portoralias
(
$pconfig
[
'port'
]))
{
$m
=
array
();
$input_errors
[]
=
gettext
(
"The port must be an integer between 1 and 65535, or a port alias."
);
for
(
$i
=
0
;
isset
(
$config
[
'load_balancer'
][
'monitor_type'
][
$i
]);
$i
++
)
}
$m
[
$config
[
'load_balancer'
][
'monitor_type'
][
$i
][
'name'
]]
=
$config
[
'load_balancer'
][
'monitor_type'
][
$i
];
// May as well use is_port as we want a positive integer and such.
if
(
!
isset
(
$m
[
$_POST
[
'monitor'
]]))
if
(
!
empty
(
$pconfig
[
'retry'
])
&&
!
is_port
(
$pconfig
[
'retry'
]))
{
$input_errors
[]
=
gettext
(
"Invalid monitor chosen."
);
$input_errors
[]
=
gettext
(
"The retry value must be an integer between 1 and 65535."
);
}
if
(
!
$input_errors
)
{
$poolent
=
array
();
if
(
is_array
(
$pconfig
[
'servers'
]))
{
foreach
(
$pconfig
[
'servers'
]
as
$svrent
)
{
if
(
isset
(
$id
)
&&
$a_pool
[
$id
])
{
if
(
!
is_ipaddr
(
$svrent
)
&&
!
is_subnetv4
(
$svrent
))
{
$poolent
=
$a_pool
[
$id
];
$input_errors
[]
=
sprintf
(
gettext
(
"%s is not a valid IP address or IPv4 subnet (in
\"
enabled
\"
list)."
),
$svrent
);
}
}
elseif
(
is_subnetv4
(
$svrent
)
&&
subnet_size
(
$svrent
)
>
64
)
{
$input_errors
[]
=
sprintf
(
gettext
(
"%s is a subnet containing more than 64 IP addresses (in
\"
enabled
\"
list)."
),
$svrent
);
$poolent
[
'name'
]
=
$_POST
[
'name'
];
}
$poolent
[
'mode'
]
=
$_POST
[
'mode'
];
}
$poolent
[
'descr'
]
=
$_POST
[
'descr'
];
}
$poolent
[
'port'
]
=
$_POST
[
'port'
];
if
(
is_array
(
$pconfig
[
'serversdisabled'
]))
{
$poolent
[
'retry'
]
=
$_POST
[
'retry'
];
foreach
(
$pconfig
[
'serversdisabled'
]
as
$svrent
)
{
$poolent
[
'servers'
]
=
$_POST
[
'servers'
];
if
(
!
is_ipaddr
(
$svrent
)
&&
!
is_subnetv4
(
$svrent
))
{
$poolent
[
'serversdisabled'
]
=
$_POST
[
'serversdisabled'
];
$input_errors
[]
=
sprintf
(
gettext
(
"%s is not a valid IP address or IPv4 subnet (in
\"
disabled
\"
list)."
),
$svrent
);
$poolent
[
'monitor'
]
=
$_POST
[
'monitor'
];
}
elseif
(
is_subnetv4
(
$svrent
)
&&
subnet_size
(
$svrent
)
>
64
)
{
$input_errors
[]
=
sprintf
(
gettext
(
"%s is a subnet containing more than 64 IP addresses (in
\"
disabled
\"
list)."
),
$svrent
);
if
(
isset
(
$id
)
&&
$a_pool
[
$id
])
{
}
/* modify all virtual servers with this name */
}
for
(
$i
=
0
;
isset
(
$config
[
'load_balancer'
][
'virtual_server'
][
$i
]);
$i
++
)
{
}
if
(
$config
[
'load_balancer'
][
'virtual_server'
][
$i
][
'lbpool'
]
==
$a_pool
[
$id
][
'name'
])
$m
=
array
();
$config
[
'load_balancer'
][
'virtual_server'
][
$i
][
'lbpool'
]
=
$poolent
[
'name'
];
for
(
$i
=
0
;
isset
(
$config
[
'load_balancer'
][
'monitor_type'
][
$i
]);
$i
++
)
{
}
$m
[
$config
[
'load_balancer'
][
'monitor_type'
][
$i
][
'name'
]]
=
$config
[
'load_balancer'
][
'monitor_type'
][
$i
];
$a_pool
[
$id
]
=
$poolent
;
}
}
else
{
if
(
!
isset
(
$m
[
$pconfig
[
'monitor'
]]))
{
$a_pool
[]
=
$poolent
;
$input_errors
[]
=
gettext
(
"Invalid monitor chosen."
);
}
}
if
(
count
(
$input_errors
)
==
0
)
{
mark_subsystem_dirty
(
'loadbalancer'
);
$poolent
=
array
();
write_config
();
foreach
(
$copy_fields
as
$fieldname
)
{
header
(
"Location: load_balancer_pool.php"
);
$poolent
[
$fieldname
]
=
$pconfig
[
$fieldname
];
exit
;
}
}
if
(
isset
(
$id
))
{
/* modify all virtual servers with this name */
for
(
$i
=
0
;
isset
(
$config
[
'load_balancer'
][
'virtual_server'
][
$i
]);
$i
++
)
{
if
(
$config
[
'load_balancer'
][
'virtual_server'
][
$i
][
'lbpool'
]
==
$a_pool
[
$id
][
'name'
])
{
$config
[
'load_balancer'
][
'virtual_server'
][
$i
][
'lbpool'
]
=
$poolent
[
'name'
];
}
}
$a_pool
[
$id
]
=
$poolent
;
}
else
{
$a_pool
[]
=
$poolent
;
}
mark_subsystem_dirty
(
'loadbalancer'
);
write_config
();
header
(
"Location: load_balancer_pool.php"
);
exit
;
}
}
}
$service_hook
=
'relayd'
;
include
(
"head.inc"
);
$service_hook
=
'relayd'
;
legacy_html_escape_form_data
(
$pconfig
);
include
(
"head.inc"
);
?>
?>
<body>
<body>
<!-- push all available (nestable) aliases in a hidden select box -->
<select
class=
"hidden"
id=
"aliases"
>
<?php
if
(
!
empty
(
$config
[
'aliases'
][
'alias'
]))
:
foreach
(
$config
[
'aliases'
][
'alias'
]
as
$alias
)
:
if
(
$alias
[
'type'
]
==
'port'
)
:?>
<
option
data
-
type
=
"<?=
$alias['type']
;?>"
value
=
"<?=
$alias['name'];?>"><?=$alias['name']
;?></option>
<?php
endif;
endforeach;
endif;
?>
</select>
<?php include("
fbegin
.
inc
"); ?>
<?php include("
fbegin
.
inc
"); ?>
<script
type=
"text/javascript"
>
<script type="
text
/
javascript
">
//
<!
[
CDATA
[
$( document ).ready(function() {
function
clearcombo
(){
// init port type ahead
for
(
var
i
=
document
.
iform
.
serversSelect
.
options
.
length
-
1
;
i
>=
0
;
i
--
){
var all_aliases = [];
document
.
iform
.
serversSelect
.
options
[
i
]
=
null
;
$("
#aliases > option").each(function(){
}
all_aliases
.
push
(
$
(
this
)
.
val
())
document
.
iform
.
serversSelect
.
selectedIndex
=
-
1
;
});
}
$
(
"#port"
)
.
typeahead
({
source
:
all_aliases
});
//]]>
</script>
$
(
"#mode"
)
.
change
(
function
(
event
){
event
.
preventDefault
();
<script
type=
"text/javascript"
src=
"/javascript/autosuggest.js"
></script>
if
(
$
(
'#mode'
)
.
val
()
==
'failover'
&&
$
(
'#servers option'
)
.
length
>
1
){
<script
type=
"text/javascript"
src=
"/javascript/suggestions.js"
></script>
$
(
'#servers option:not(:first)'
)
.
remove
()
.
appendTo
(
'#serversdisabled'
);
}
<section
class=
"page-content-main"
>
});
$
(
"#btn_add_to_pool"
)
.
click
(
function
(
event
){
<div
class=
"container-fluid"
>
event
.
preventDefault
();
if
(
$
(
'#mode'
)
.
val
()
!=
'failover'
||
$
(
'#servers option'
)
.
length
==
0
){
<div
class=
"row"
>
$
(
'#servers'
)
.
append
(
$
(
'<option>'
,
{
value
:
$
(
"#ipaddr"
)
.
val
()
})
.
text
(
$
(
"#ipaddr"
)
.
val
()));
}
else
{
<?php
if
(
isset
(
$input_errors
)
&&
count
(
$input_errors
)
>
0
)
print_input_errors
(
$input_errors
);
?>
$
(
'#serversdisabled'
)
.
append
(
$
(
'<option>'
,
{
value
:
$
(
"#ipaddr"
)
.
val
()
})
.
text
(
$
(
"#ipaddr"
)
.
val
()));
}
<section
class=
"col-xs-12"
>
});
<div
class=
"content-box"
>
$
(
"#moveToEnabled"
)
.
click
(
function
(
event
){
event
.
preventDefault
();
<form
action=
"load_balancer_pool_edit.php"
method=
"post"
name=
"iform"
id=
"iform"
>
if
(
$
(
'#mode'
)
.
val
()
!=
'failover'
||
(
$
(
'#servers option'
)
.
length
==
0
&&
$
(
'#serversdisabled option:selected'
)
.
length
==
1
))
<div
class=
"table-responsive"
>
{
<table
class=
"table table-striped table-sort"
>
$
(
'#serversdisabled option:selected'
)
.
remove
()
.
appendTo
(
'#servers'
);
<tr>
}
<td
colspan=
"2"
valign=
"top"
class=
"listtopic"
>
<?=
gettext
(
"Add/edit Load Balancer - Pool entry"
);
?>
</td>
});
</tr>
$
(
"#moveToDisabled"
)
.
click
(
function
(
event
){
<tr
align=
"left"
>
event
.
preventDefault
();
<td
width=
"22%"
valign=
"top"
class=
"vncellreq"
>
<?=
gettext
(
"Name"
);
?>
</td>
$
(
'#servers option:selected'
)
.
remove
()
.
appendTo
(
'#serversdisabled'
);
<td
width=
"78%"
class=
"vtable"
colspan=
"2"
>
});
<input
name=
"name"
type=
"text"
<?php
if
(
isset
(
$pconfig
[
'name'
]))
echo
"value=
\"
{
$pconfig
[
'name'
]
}
\"
"
;
?>
size=
"16"
maxlength=
"16"
/>
</td>
$
(
"#btn_del_serversdisabled"
)
.
click
(
function
(
event
){
</tr>
event
.
preventDefault
();
<tr
align=
"left"
>
$
(
'#serversdisabled option:selected'
)
.
remove
();
<td
width=
"22%"
valign=
"top"
class=
"vncellreq"
>
<?=
gettext
(
"Mode"
);
?>
</td>
});
<td
width=
"78%"
class=
"vtable"
colspan=
"2"
>
<select
id=
"mode"
name=
"mode"
onchange=
"enforceFailover(); checkPoolControls();"
>
$
(
"#btn_del_servers"
)
.
click
(
function
(
event
){
<option
value=
"loadbalance"
<?php
if
(
!
isset
(
$pconfig
[
'mode'
])
||
(
$pconfig
[
'mode'
]
==
"loadbalance"
))
echo
"selected=
\"
selected
\"
"
;
?>
>
<?=
gettext
(
"Load Balance"
);
?>
</option>
event
.
preventDefault
();
<option
value=
"failover"
<?php
if
(
$pconfig
[
'mode'
]
==
"failover"
)
echo
"selected=
\"
selected
\"
"
;
?>
>
<?=
gettext
(
"Manual Failover"
);
?>
</option>
$
(
'#servers option:selected'
)
.
remove
();
</select>
});
</td>
</tr>
$
(
"#save"
)
.
click
(
function
(){
<tr
align=
"left"
>
$
(
'#servers option'
)
.
prop
(
'selected'
,
true
);
<td
width=
"22%"
valign=
"top"
class=
"vncell"
>
<?=
gettext
(
"Description"
);
?>
</td>
$
(
'#serversdisabled option'
)
.
prop
(
'selected'
,
true
);
<td
width=
"78%"
class=
"vtable"
colspan=
"2"
>
});
<input
name=
"descr"
type=
"text"
<?php
if
(
isset
(
$pconfig
[
'descr'
]))
echo
"value=
\"
{
$pconfig
[
'descr'
]
}
\"
"
;
?>
size=
"64"
/>
});
</td>
</
script
>
</tr>
<
section
class
="
page
-
content
-
main
">
<tr
align=
"left"
>
<div class="
container
-
fluid
">
<td
width=
"22%"
valign=
"top"
id=
"monitorport_text"
class=
"vncellreq"
>
<?=
gettext
(
"Port"
);
?>
</td>
<div class="
row
">
<td
width=
"78%"
class=
"vtable"
colspan=
"2"
>
<?php if (isset(
$input_errors
) && count(
$input_errors
) > 0) print_input_errors(
$input_errors
); ?>
<input
class=
"formfldalias"
id=
"port"
name=
"port"
type=
"text"
<?php
if
(
isset
(
$pconfig
[
'port'
]))
echo
"value=
\"
{
$pconfig
[
'port'
]
}
\"
"
;
?>
size=
"16"
maxlength=
"16"
/><br
/>
<section class="
col
-
xs
-
12
">
<div
id=
"monitorport_desc"
>
<div class="
content
-
box
">
<?=
gettext
(
"This is the port your servers are listening on."
);
?>
<br
/>
<form method="
post
" name="
iform
" id="
iform
">
<?=
gettext
(
"You may also specify a port alias listed in Firewall -> Aliases here."
);
?>
<div class="
table
-
responsive
">
</div>
<table class="
table
table
-
striped
">
<script
type=
"text/javascript"
>
<tr>
//
<!
[
CDATA
[
<td>
var
addressarray
=
<?=
json_encode
(
get_alias_list
(
array
(
"port"
,
"url_ports"
,
"urltable_ports"
)))
?>
;
<strong><?=gettext("
Add
/
edit
-
Pool
entry
"); ?></strong>
var
oTextbox1
=
new
AutoSuggestControl
(
document
.
getElementById
(
"
port
"
),
new
StateSuggestions
(
addressarray
));
</td>
//]]>
<td align="
right
">
</script>
<small><?=gettext("
full
help
"); ?> </small>
</td>
<i class="
fa
fa
-
toggle
-
off
text
-
danger
" style="
cursor
:
pointer
;
" id="
show_all_help_page
" type="
button
"></i>
</tr>
</td>
<tr
align=
"left"
>
</tr>
<td
width=
"22%"
valign=
"top"
id=
"retry_text"
class=
"vncell"
>
<?=
gettext
(
"Retry"
);
?>
</td>
<tr>
<td
width=
"78%"
class=
"vtable"
colspan=
"2"
>
<td><i class="
fa
fa
-
info
-
circle
text
-
muted
"></i> <?=gettext("
Name
"); ?></td>
<input
name=
"retry"
type=
"text"
<?php
if
(
isset
(
$pconfig
[
'retry'
]))
echo
"value=
\"
{
$pconfig
[
'retry'
]
}
\"
"
;
?>
size=
"16"
maxlength=
"16"
/><br
/>
<td>
<div
id=
"retry_desc"
>
<?=
gettext
(
"Optionally specify how many times to retry checking a server before declaring it down."
);
?>
</div>
<input name="
name
" type="
text
" value="
<?=
$pconfig
[
'name'
];
?>
" />
</td>
</td>
</tr>
</tr>
<tr>
<tr>
<td
colspan=
"2"
>
</td>
<td><i
class=
"fa fa-info-circle text-muted"
></i>
<?=
gettext
(
"Mode"
);
?>
</td>
</tr>
<td>
<tr>
<select
id=
"mode"
name=
"mode"
>
<td
colspan=
"2"
valign=
"top"
class=
"listtopic"
>
<?=
gettext
(
"Add item to pool"
);
?>
</td>
<option
value=
"loadbalance"
<?=
$pconfig
[
'mode'
]
==
"loadbalance"
?
"selected=
\"
selected
\"
"
:
""
;
?>
>
</tr>
<?=
gettext
(
"Load Balance"
);
?>
<tr
align=
"left"
>
</option>
<td
width=
"22%"
valign=
"top"
class=
"vncellreq"
>
<?=
gettext
(
"Monitor"
);
?>
</td>
<option
value=
"failover"
<?=
$pconfig
[
'mode'
]
==
"failover"
?
"selected=
\"
selected
\"
"
:
""
;
?>
>
<td
width=
"78%"
class=
"vtable"
colspan=
"2"
>
<?=
gettext
(
"Manual Failover"
);
?>
<?php
if
(
count
(
$config
[
'load_balancer'
][
'monitor_type'
]))
:
?>
</option>
<select
id=
"monitor"
name=
"monitor"
>
</select>
<?php
</td>
foreach
(
$config
[
'load_balancer'
][
'monitor_type'
]
as
$monitor
)
{
</tr>
if
(
$monitor
[
'name'
]
==
$pconfig
[
'monitor'
])
{
<tr>
$selected
=
" selected=
\"
selected
\"
"
;
<td><i
class=
"fa fa-info-circle text-muted"
></i>
<?=
gettext
(
"Description"
);
?>
</td>
}
else
{
<td>
$selected
=
""
;
<input
name=
"descr"
type=
"text"
<?php
if
(
isset
(
$pconfig
[
'descr'
]))
echo
"value=
\"
{
$pconfig
[
'descr'
]
}
\"
"
;
?>
size=
"64"
/>
}
</td>
echo
"<option value=
\"
{
$monitor
[
'name'
]
}
\"
{
$selected
}
>
{
$monitor
[
'name'
]
}
</option>"
;
</tr>
}
<tr>
?>
<td><a
id=
"help_for_port"
href=
"#"
class=
"showhelp"
><i
class=
"fa fa-info-circle"
></i></a>
<?=
gettext
(
"Port"
);
?>
</td>
<?php
else
:
?>
<td>
<b>
<?=
gettext
(
"NOTE"
);
?>
:
</b>
<?=
gettext
(
"Please add a monitor IP address on the monitors tab if you wish to use this feature."
);
?>
<input
type=
"text"
id=
"port"
name=
"port"
value=
"
<?=
$pconfig
[
'port'
];
?>
"
/>
<?php
endif
;
?>
<div
class=
"hidden"
for=
"help_for_port"
>
</select>
<?=
gettext
(
"This is the port your servers are listening on."
);
?>
<br
/>
</td>
<?=
gettext
(
"You may also specify a port alias listed in Firewall -> Aliases here."
);
?>
</tr>
</div>
<tr
align=
"left"
>
</td>
<td
width=
"22%"
valign=
"top"
class=
"vncellreq"
>
<?=
gettext
(
"Server IP Address"
);
?>
</td>
</tr>
<td
width=
"78%"
class=
"vtable"
colspan=
"2"
>
<tr>
<input
name=
"ipaddr"
type=
"text"
size=
"16"
style=
"float: left;"
/>
<td><a
id=
"help_for_retry"
href=
"#"
class=
"showhelp"
><i
class=
"fa fa-info-circle"
></i></a>
<?=
gettext
(
"Retry"
);
?>
</td>
<input
class=
"btn btn-default"
type=
"button"
name=
"button1"
value=
"
<?=
gettext
(
"Add to pool"
);
?>
"
onclick=
"AddServerToPool(document.iform); enforceFailover(); checkPoolControls();"
/><br
/>
<td>
</td>
<input
name=
"retry"
type=
"text"
value=
"
<?=
$pconfig
[
'retry'
];
?>
"
/>
</tr>
<div
for=
"help_for_retry"
class=
"hidden"
>
<tr>
<?=
gettext
(
"Optionally specify how many times to retry checking a server before declaring it down."
);
?>
<td
colspan=
"2"
>
</td>
</div>
</tr>
</td>
<tr>
</tr>
<td
colspan=
"2"
valign=
"top"
class=
"listtopic"
>
<?=
gettext
(
"Current Pool Members"
);
?>
</td>
<tr>
</tr>
<td
colspan=
"2"
><strong>
<?=
gettext
(
"Add item to pool"
);
?>
</strong></td>
<tr>
</tr>
<td
width=
"22%"
valign=
"top"
class=
"vncellreq"
>
<?=
gettext
(
"Members"
);
?>
</td>
<tr>
<td
width=
"78%"
class=
"vtable"
colspan=
"2"
valign=
"top"
>
<td><i
class=
"fa fa-info-circle text-muted"
></i>
<?=
gettext
(
"Monitor"
);
?>
</td>
<table
summary=
"members"
>
<td>
<tbody>
<select
id=
"monitor"
name=
"monitor"
>
<tr>
<?php
<td
align=
"center"
>
if
(
!
empty
(
$config
[
'load_balancer'
][
'monitor_type'
]))
:
<b>
<?=
gettext
(
"Pool Disabled"
);
?>
</b>
foreach
(
$config
[
'load_balancer'
][
'monitor_type'
]
as
$monitor
)
:?>
<br/>
<
option
value
=
"<?=
$monitor['name']
;?>"
<?=
$monitor
[
'name'
]
==
$pconfig
[
'monitor'
]
?
"selected=
\"
selected
\"
"
:
""
;
?>
>
<select
id=
"serversDisabledSelect"
name=
"serversdisabled[]"
multiple=
"multiple"
size=
"5"
>
<?=
$monitor
[
'name'
];
?>
<?php
</option>
if
(
is_array
(
$pconfig
[
'serversdisabled'
]))
{
<?php
foreach
(
$pconfig
[
'serversdisabled'
]
as
$svrent
)
{
endforeach
;
if
(
$svrent
!=
''
)
echo
" <option value=
\"
{
$svrent
}
\"
>
{
$svrent
}
</option>
\n
"
;
endif
;
?>
}
</select>
}
</td>
?>
</tr>
</select>
<tr>
<input
class=
"btn btn-default"
type=
"button"
name=
"removeDisabled"
value=
"
<?=
gettext
(
"Remove"
);
?>
"
onclick=
"RemoveServerFromPool(document.iform, 'serversdisabled[]');"
/>
<td><i
class=
"fa fa-info-circle text-muted"
></i>
<?=
gettext
(
"Server IP Address"
);
?>
</td>
</td>
<td>
<div
class=
"input-group"
>
<td
valign=
"middle"
align=
"center"
>
<span
class=
"input-group-btn"
>
<button
class=
"btn btn-default btn-xs"
id=
"moveToEnabled"
name=
"moveToEnabled"
onclick=
"moveOptions(document.iform.serversDisabledSelect, document.iform.serversSelect); checkPoolControls();"
><span
class=
"glyphicon glyphicon-arrow-left"
></span></button><br
/>
<button
class=
"btn btn-default"
id=
"btn_add_to_pool"
type=
"button"
>
<?=
gettext
(
"Add to pool"
);
?>
</button>
<button
class=
"btn btn-default btn-xs"
id=
"moveToDisabled"
name=
"moveToDisabled"
onclick=
"moveOptions(document.iform.serversSelect, document.iform.serversDisabledSelect); checkPoolControls();"
><span
class=
"glyphicon glyphicon-arrow-right"
></span></button>
</span>
</td>
<input
class=
"form-control"
id=
"ipaddr"
type=
"text"
>
</div>
<td
align=
"center"
>
</td>
<b>
<?=
gettext
(
"Enabled (default)"
);
?>
</b>
</tr>
<br/>
<tr>
<select
id=
"serversSelect"
name=
"servers[]"
multiple=
"multiple"
size=
"5"
>
<td
colspan=
"2"
><strong>
<?=
gettext
(
"Current Pool Members"
);
?>
</strong></td>
<?php
</tr>
if
(
is_array
(
$pconfig
[
'servers'
]))
{
<tr>
foreach
(
$pconfig
[
'servers'
]
as
$svrent
)
{
<td><i
class=
"fa fa-info-circle text-muted"
></i>
<?=
gettext
(
"Members"
);
?>
</td>
echo
" <option value=
\"
{
$svrent
}
\"
>
{
$svrent
}
</option>
\n
"
;
<td>
}
<table
class=
"table table-condensed"
>
}
<thead>
?>
<tr>
</select>
<th>
<?=
gettext
(
"Pool Disabled"
);
?>
</th>
<input
class=
"btn btn-default"
type=
"button"
name=
"removeEnabled"
value=
"
<?=
gettext
(
"Remove"
);
?>
"
onclick=
"RemoveServerFromPool(document.iform, 'servers[]');"
/>
<th></th>
</td>
<th>
<?=
gettext
(
"Enabled (default)"
);
?>
</th>
</tr>
</tr>
</tbody>
</thead>
</table>
<tbody>
</td>
<tr>
</tr>
<td>
<tr
align=
"left"
>
<select
id=
"serversdisabled"
name=
"serversdisabled[]"
multiple=
"multiple"
>
<td
width=
"22%"
valign=
"top"
>
</td>
<?php
<td
width=
"78%"
>
foreach
(
$pconfig
[
'serversdisabled'
]
as
$svrent
)
:?>
<br
/>
<
option
value
=
"<?=
$svrent
;?>"
><?=
$svrent
;
?>
</option>
<input
name=
"Submit"
type=
"submit"
class=
"btn btn-primary"
value=
"
<?=
gettext
(
"Save"
);
?>
"
onclick=
"AllServers('serversSelect', true); AllServers('serversDisabledSelect', true);"
/>
<?php
<input
type=
"button"
class=
"btn btn-default"
value=
"
<?=
gettext
(
"Cancel"
);
?>
"
onclick=
"window.location.href='
<?=
$referer
;
?>
'"
/>
endforeach
;
?>
<?php
if
(
isset
(
$id
)
&&
$a_pool
[
$id
]
&&
$_GET
[
'act'
]
!=
'dup'
)
:
?>
</select>
<input
name=
"id"
type=
"hidden"
value=
"
<?=
htmlspecialchars
(
$id
);
?>
"
/>
<hr/>
<?php
endif
;
?>
<button
id=
"btn_del_serversdisabled"
class=
"btn btn-default btn-xs"
data-toggle=
"tooltip"
><span
class=
"fa fa-trash text-muted"
></span></button>
</td>
</td>
</tr>
<td>
</table>
<button
class=
"btn btn-default btn-xs"
id=
"moveToDisabled"
><span
class=
"glyphicon glyphicon-arrow-left"
></span></button><br
/>
</div>
<button
class=
"btn btn-default btn-xs"
id=
"moveToEnabled"
><span
class=
"glyphicon glyphicon-arrow-right"
></span></button>
</form>
</td>
</div>
<td>
</section>
<select
id=
"servers"
name=
"servers[]"
multiple=
"multiple"
>
</div>
<?php
</div>
foreach
(
$pconfig
[
'servers'
]
as
$svrent
)
:?>
</section>
<
option
value
=
"<?=
$svrent
;?>"
><?=
$svrent
;
?>
</option>
<?php
endforeach
;
?>
</select>
<hr/>
<button
id=
"btn_del_servers"
class=
"btn btn-default btn-xs"
data-toggle=
"tooltip"
><span
class=
"fa fa-trash text-muted"
></span></button>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td>
</td>
<td
width=
"78%"
>
<br
/>
<input
id=
"save"
name=
"save"
type=
"submit"
class=
"btn btn-primary"
value=
"
<?=
gettext
(
"Save"
);
?>
"
/>
<input
type=
"button"
class=
"btn btn-default"
value=
"
<?=
gettext
(
"Cancel"
);
?>
"
onclick=
"window.location.href='
<?=
(
isset
(
$_SERVER
[
'HTTP_REFERER'
])
?
$_SERVER
[
'HTTP_REFERER'
]
:
'/load_balancer_pool.php'
);
?>
'"
/>
<?php
if
(
isset
(
$id
)
&&
(
empty
(
$_GET
[
'act'
])
||
$_GET
[
'act'
]
!=
'dup'
))
:
?>
<input
name=
"id"
type=
"hidden"
value=
"
<?=
htmlspecialchars
(
$id
);
?>
"
/>
<?php
endif
;
?>
</td>
</tr>
</table>
</div>
</form>
</div>
</section>
</div>
</div>
</section>
<?php
include
(
"foot.inc"
);
?>
<?php
include
(
"foot.inc"
);
?>
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment