diff options
Diffstat (limited to 'FS')
| -rw-r--r-- | FS/FS/Schema.pm | 40 | ||||
| -rw-r--r-- | FS/FS/nas.pm | 96 | ||||
| -rw-r--r-- | FS/MANIFEST | 2 |
3 files changed, 74 insertions, 64 deletions
diff --git a/FS/FS/Schema.pm b/FS/FS/Schema.pm index ee434d76e..4fc0cfe69 100644 --- a/FS/FS/Schema.pm +++ b/FS/FS/Schema.pm @@ -2242,29 +2242,31 @@ sub tables_hashref { 'nas' => { 'columns' => [ - 'nasnum', 'serial', '', '', '', '', - 'nas', 'varchar', '', $char_d, '', '', - 'nasip', 'varchar', '', 15, '', '', - 'nasfqdn', 'varchar', '', $char_d, '', '', - 'last', 'int', '', '', '', '', + 'nasnum', 'serial', '', '', '', '', + 'nasname', 'varchar', '', 128, '', '', + 'shortname', 'varchar', 'NULL', 32, '', '', + 'type', 'varchar', '', 30, 'other', '', + 'ports', 'int', 'NULL', '', '', '', + 'secret', 'varchar', '', 60, 'secret', '', + 'server', 'varchar', 'NULL', 64, '', '', + 'community', 'varchar', 'NULL', 50, '', '', + 'description', 'varchar', '', 200, 'RADIUS Client', '', ], 'primary_key' => 'nasnum', - 'unique' => [ [ 'nas' ], [ 'nasip' ] ], - 'index' => [ [ 'last' ] ], + 'unique' => [ [ 'nasname' ], ], + 'index' => [], }, -# 'session' => { -# 'columns' => [ -# 'sessionnum', 'serial', '', '', '', '', -# 'portnum', 'int', '', '', '', '', -# 'svcnum', 'int', '', '', '', '', -# 'login', @date_type, '', '', -# 'logout', @date_type, '', '', -# ], -# 'primary_key' => 'sessionnum', -# 'unique' => [], -# 'index' => [ [ 'portnum' ] ], -# }, + 'export_nas' => { + 'columns' => [ + 'exportnasnum', 'serial', '', '', '', '', + 'exportnum', 'int', '', '', '', '', + 'nasnum', 'int', '', '', '', '', + ], + 'primary_key' => 'exportnasnum', + 'unique' => [ [ 'exportnum', 'nasnum' ] ], + 'index' => [ [ 'exportnum' ], [ 'nasnum' ] ], + }, 'queue' => { 'columns' => [ diff --git a/FS/FS/nas.pm b/FS/FS/nas.pm index 97b0ea17d..7fb7db5e5 100644 --- a/FS/FS/nas.pm +++ b/FS/FS/nas.pm @@ -1,11 +1,8 @@ package FS::nas; use strict; -use vars qw( @ISA ); -use FS::Record qw(qsearchs); #qsearch); -use FS::UID qw( dbh ); - -@ISA = qw(FS::Record); +use base qw( FS::Record ); +use FS::Record qw( qsearch qsearchs ); =head1 NAME @@ -16,11 +13,7 @@ FS::nas - Object methods for nas records use FS::nas; $record = new FS::nas \%hash; - $record = new FS::nas { - 'nasnum' => 1, - 'nasip' => '10.4.20.23', - 'nasfqdn' => 'box1.brc.nv.us.example.net', - }; + $record = new FS::nas { 'column' => 'value' }; $error = $record->insert; @@ -30,26 +23,49 @@ FS::nas - Object methods for nas records $error = $record->check; - $error = $record->heartbeat($timestamp); - =head1 DESCRIPTION -An FS::nas object represents an Network Access Server on your network, such as -a terminal server or equivalent. FS::nas inherits from FS::Record. The -following fields are currently supported: +An FS::nas object represents a RADIUS client. FS::nas inherits from +FS::Record. The following fields are currently supported: =over 4 -=item nasnum - primary key +=item nasnum + +primary key + +=item nasname + +nasname + +=item shortname + +shortname + +=item type + +type + +=item ports + +ports + +=item secret -=item nas - NAS name +secret -=item nasip - NAS ip address +=item server -=item nasfqdn - NAS fully-qualified domain name +server + +=item community + +community + +=item description + +description -=item last - timestamp indicating the last instant the NAS was in a known - state (used by the session monitoring). =back @@ -110,36 +126,26 @@ and replace methods. sub check { my $self = shift; - $self->ut_numbern('nasnum') - || $self->ut_text('nas') - || $self->ut_ip('nasip') - || $self->ut_domain('nasfqdn') - || $self->ut_numbern('last') - || $self->SUPER::check - ; -} - -=item heartbeat TIMESTAMP - -Updates the timestamp for this nas - -=cut - -sub heartbeat { - my($self, $timestamp) = @_; - my $dbh = dbh; - my $sth = - $dbh->prepare("UPDATE nas SET last = ? WHERE nasnum = ? AND last < ?"); - $sth->execute($timestamp, $self->nasnum, $timestamp) or die $sth->errstr; - $self->last($timestamp); + my $error = + $self->ut_numbern('nasnum') + || $self->ut_text('nasname') + || $self->ut_textn('shortname') + || $self->ut_text('type') + || $self->ut_numbern('ports') + || $self->ut_text('secret') + || $self->ut_textn('server') + || $self->ut_textn('community') + || $self->ut_text('description') + ; + return $error if $error; + + $self->SUPER::check; } =back =head1 BUGS -heartbeat method uses SQL directly and doesn't update history tables. - =head1 SEE ALSO L<FS::Record>, schema.html from the base documentation. diff --git a/FS/MANIFEST b/FS/MANIFEST index 557e61279..eeca1b27b 100644 --- a/FS/MANIFEST +++ b/FS/MANIFEST @@ -612,3 +612,5 @@ FS/template_content.pm t/template_content.t FS/dsl_device.pm t/dsl_device.t +FS/export_nas.pm +t/export_nas.t |
