store wireless ssid and port info to DB
This commit is contained in:
		| @@ -144,6 +144,29 @@ __PACKAGE__->has_many( | ||||
| # helper which assumes we've just RIGHT JOINed to Vlans table | ||||
| sub vlan { return (shift)->vlans->first } | ||||
|  | ||||
| =head2 wireless_ports | ||||
|  | ||||
| Returns the set of wireless IDs known to be configured on Ports on this | ||||
| Device. | ||||
|  | ||||
| =cut | ||||
|  | ||||
| __PACKAGE__->has_many( | ||||
|     wireless_ports => 'App::Netdisco::DB::Result::DevicePortWireless', | ||||
|     'ip', { join_type => 'RIGHT' } | ||||
| ); | ||||
|  | ||||
| =head2 ssids | ||||
|  | ||||
| Returns the set of SSIDs known to be configured on Ports on this Device. | ||||
|  | ||||
| =cut | ||||
|  | ||||
| __PACKAGE__->has_many( | ||||
|     ssids => 'App::Netdisco::DB::Result::DevicePortSsid', | ||||
|     'ip', { join_type => 'RIGHT' } | ||||
| ); | ||||
|  | ||||
| =head1 ADDITIONAL COLUMNS | ||||
|  | ||||
| =head2 uptime_age | ||||
|   | ||||
| @@ -26,6 +26,25 @@ __PACKAGE__->add_columns( | ||||
| # Created by DBIx::Class::Schema::Loader v0.07015 @ 2012-01-07 14:20:02 | ||||
| # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:zvgylKzUQtizJZCe1rEdUg | ||||
|  | ||||
| =head1 RELATIONSHIPS | ||||
|  | ||||
| =head2 device | ||||
|  | ||||
| Returns the entry from the C<device> table which hosts this SSID. | ||||
|  | ||||
| =cut | ||||
|  | ||||
| __PACKAGE__->belongs_to( device => 'App::Netdisco::DB::Result::Device', 'ip' ); | ||||
|  | ||||
| =head2 port | ||||
|  | ||||
| Returns the entry from the C<port> table which corresponds to this SSID. | ||||
|  | ||||
| =cut | ||||
|  | ||||
| __PACKAGE__->belongs_to( port => 'App::Netdisco::DB::Result::DevicePort', { | ||||
|     'foreign.ip' => 'self.ip', 'foreign.port' => 'self.port', | ||||
| }); | ||||
|  | ||||
| # You can replace this text with custom code or comments, and it will be preserved on regeneration | ||||
| 1; | ||||
|   | ||||
| @@ -24,6 +24,26 @@ __PACKAGE__->add_columns( | ||||
| # Created by DBIx::Class::Schema::Loader v0.07015 @ 2012-01-07 14:20:02 | ||||
| # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:T5GmnCj/9BB7meiGZ3xN7g | ||||
|  | ||||
| =head1 RELATIONSHIPS | ||||
|  | ||||
| =head2 device | ||||
|  | ||||
| Returns the entry from the C<device> table which hosts this wireless port. | ||||
|  | ||||
| =cut | ||||
|  | ||||
| __PACKAGE__->belongs_to( device => 'App::Netdisco::DB::Result::Device', 'ip' ); | ||||
|  | ||||
| =head2 port | ||||
|  | ||||
| Returns the entry from the C<port> table which corresponds to this wireless | ||||
| interface. | ||||
|  | ||||
| =cut | ||||
|  | ||||
| __PACKAGE__->belongs_to( port => 'App::Netdisco::DB::Result::DevicePort', { | ||||
|     'foreign.ip' => 'self.ip', 'foreign.port' => 'self.port', | ||||
| }); | ||||
|  | ||||
| # You can replace this text with custom code or comments, and it will be preserved on regeneration | ||||
| 1; | ||||
|   | ||||
| @@ -240,6 +240,11 @@ sub store_wireless { | ||||
|       }; | ||||
|   } | ||||
|  | ||||
|   schema('netdisco')->txn_do(sub { | ||||
|     $device->ssids->delete; | ||||
|     $device->ssids->populate(\@ssids); | ||||
|   }); | ||||
|  | ||||
|   # build device channel list suitable for DBIC | ||||
|   my @channels; | ||||
|   foreach my $entry (keys %$channel) { | ||||
| @@ -258,13 +263,10 @@ sub store_wireless { | ||||
|       }; | ||||
|   } | ||||
|  | ||||
|   # FIXME not sure what relations need adding for wireless ports | ||||
|   #  | ||||
|   #schema('netdisco')->txn_do(sub { | ||||
|   #  $device->ports->delete; | ||||
|   #  $device->update_or_insert; | ||||
|   #  $device->ports->populate(\@interfaces); | ||||
|   #}); | ||||
|   schema('netdisco')->txn_do(sub { | ||||
|     $device->wireless_ports->delete; | ||||
|     $device->wireless_ports->populate(\@channels); | ||||
|   }); | ||||
| } | ||||
|  | ||||
| =head2 store_vlans( $device, $snmp ) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user