NAME
Config::HAProxy::Node::Section - HAProxy configuration section
DESCRIPTION
Objects of this class represent a section
in the HAProxy configuration file. A section is a statement that can contain sub-statements. The following statements form sections: global, defaults, frontend, and backend.
ATTRIBUTES
is_section
Always true.
METHODS
kw
Returns the configuration keyword.
argv
Returns the list of arguments to the configuration keyword.
arg
$s = $node->arg($n)
Returns the $nth argument.
orig
Returns original line as it appeared in the configuration file.
locus
Returns the location of this statement in the configuration file (the Text::Locus object).
append_node
$section->append_node(@nodes);
Takes a list of objects of Config::HAProxy::Node derived classes as arguments. Adds these objects after the last node in the subtree in this section.
append_node_nonempty
$section->append_node_nonempty(@nodes);
Same as append_node, but adds new nodes after the last non-empty node in the subtree.
insert_node
$section->insert_node($idx, @nodes);
Inserts @nodes after subnode in position $idx (0-based).
delete_node
$section->delete_node($i);
Deletes $ith subnode from the $section.
tree
@nodes = $section->tree;
Returns subnodes as a list of Config::HAProxy::Node derived objects.
$node = $section->tree($i);
Returns $ith subnode from the $section.
ends_in_empty
$bool = $section->ends_in_empty
Returns true if the last node in the list of sub-nodes in $section is an empty node.
select
@nodes = $section->select(%cond);
Returns nodes from $section that match conditions in %cond. Valid conditions are:
- name => $s
-
Node matches if its keyword (kw) equals $s.
- arg => { n => $n, v => $s }
-
Node mathches if its $nth argument equals $s.
- section => $bool
-
Node matches if it is (or is not, if $bool is false) a section.
- statement => $bool
-
Node matches if it is (not) a simple statement.
- comment => $bool
-
Node matches if it is (not) a comment.
Multiple conditions are checked in the order of their appearance in the argument list and are joined by the short-circuit logical and
.
For example, to return all frontend statements:
@fe = $section->select(name => 'frontend');
To return the frontend named in
:
($fe) = $section->select( name => 'frontend',
arg => { n => 0, v => 'in' } );
SEE ALSO
Config::HAProxy::Node, Config::HAProxy, Text::Locus.