Freeside:4:Documentation:Developer/FS/domain record
From Freeside
Contents
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; ttl - time to live
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.
- rectypes
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.