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
Mar 04, 2016
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"
);
?>
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