Apache::TS::Config::Records - Manage the Apache Traffic Server records.config
file
#!/usr/bin/perl
use Apache::TS::Config::Records;
my $r = new Apache::TS::Config::Records(file => "/tmp/records.config");
$r->set(conf => "proxy.config.log.extended_log_enabled",
val => "123");
$r->write(file => "/tmp/records.config.new");
This module implements a convenient interface to read, modify and save the
records.config file as used by Apache Traffic Server.
Instantiating a new Config::Records class, with a file provided,
will automatically load that configuration. Don't call the load()
method explicitly in this case.
The following are methods in the Records class.
- new
- Instantiate a new object. The file name is optionally provided, and if
present that file is immediately loaded (see the load() method
below). Example:
my $r = new Apache::TS::Config::Records(file => $fname);
- load
- Explicitly load a configuration file, merging the items with any existing
values. This is useful to for example merge multiple configuration into
one single structure
- get
- Get an existing configuration line. This is useful for detecting that a
config exists or not, for example. The return value is an anonymous array
like
[<line string>, [value split into 4 fields, flag if changed]
You probably shouldn't modify this array.
- set
- Modify one configuration value, with the provided value. Both the conf
name and the value are required. Example:
$r->set(conf => "proxy.config.exec_thread.autoconfig",
val => "0");
conf is short for "config", val is short for
"value", and all are acceptable.
- remove
- Remove a specified configuration, the mandatory option is conf (or
"config"). Example:
$r->remove(conf => "proxy.config.exec_thread.autoconfig");
- append
- Append a string to the "end" of the finished configuration file.
We will assure that no duplicated configurations are added. The input is a
single line, as per the normal records.config syntax. The purpose of this
is to add new sections to the configuration, with appropriate comments
etc. Example:
$r->append(line => "");
$r->append(line => "# My local stuff");
$r->set(conf => "proxy.config.dns.dedicated_thread",
val => "1");
- write
- Write the new configuration file to STDOUT, or a filename if provided.
Example:
$r->write(file => "/etc/trafficserver/records.config");