Freeside:1.7: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
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.