Freeside:1.9:Documentation:Developer/FS/domain record

From Freeside
Jump to: navigation, search

NAME

FS::domain_record - Object methods for domain_record records

SYNOPSIS

 use FS::domain_record;

 $record = new FS::domain_record \%hash;
 $record = new FS::domain_record { 'column' => 'value' };

 $error = $record->insert;

 $error = $new_record->replace($old_record);

 $error = $record->delete;

 $error = $record->check;

DESCRIPTION

An FS::domain_record object represents an entry in a DNS zone. FS::domain_record inherits from FS::Record. The following fields are currently supported:

recnum - primary key; svcnum - Domain (see FS::svc_domain) of this entry; reczone - partial (or full) zone for this entry; recaf - address family for this entry, currently only `IN' is recognized.; rectype - record type for this entry (A, MX, etc.); recdata - data for this entry

METHODS

new HASHREF
Creates a new entry. To add the entry to the database, see "insert".
Note that this stores the hash reference, not a distinct copy of the hash it points to. You can ask the object for a copy with the hash method.
insert
Adds this record to the database. If there is an error, returns the error, otherwise returns false.
delete
Delete this record from the database.
replace OLD_RECORD
Replaces the OLD_RECORD with this one in the database. If there is an error, returns the error, otherwise returns false.
check
Checks all fields to make sure this is a valid entry. If there is an error, returns the error, otherwise returns false. Called by the insert and replace methods.
increment_serial; svc_domain
Returns the domain (see FS::svc_domain) for this record.
zone
Returns the canonical zone name.
reverse_record
Returns the corresponding reverse-ARPA record as another FS::domain_record object. If the specific record does not exist in the database but the reverse-ARPA zone itself does, an appropriate new record is created. If no reverse-ARPA zone is available at all, returns false.
(You can test whether or not record itself exists in the database or is a new object that might need to be inserted by checking the recnum field)
Mostly used by the insert and delete methods - probably should see them for examples.

BUGS

The data validation doesn't check everything it could. In particular, there is no protection against bad data that passes the regex, duplicate SOA records, forgetting the trailing `.', impossible IP addersses, etc. Of course, it's still better than editing the zone files directly. :)

SEE ALSO

FS::Record, schema.html from the base documentation.