Thread LinuxMagazin Script Fehler
(13 answers)
Opened by Gast at 2008-05-30 16:22
Hi,
ich bin auch gerade dabei mich mit "Licht ins Dunkel" zu beschäftigen. Dabei ist mir aufgefallen, das der Eintrag "ip_change" in namedev nirgends genutzt wird. Bei dem split wird er noch berücksichtigt, aber an device_add wird er nicht übergeben. Also habe ich hier mal folgende Anpassung gemacht: Code (perl): (dl
)
1 2 3 4 5 6 7 my($mac, $ip, $ip_change) = split ' ', $nextline; if($ip_change) { $db->device_add($name, $mac); } else { $db->device_add($name, $mac, $ip); } Dann ist mir aufgefallen, das sich das Problem nach "WatchLan" durchzieht. In device_add wird er auch nicht berücksichtigt. Da in das Feld ip_static_id der Tabelle devices aber die id der IP-Adresse eingetragen wird, setzt's bei mir aus. Wie kann ich mittels ROSE die id abfragen? In guter alter SQL würde ich schreiben: Code: (dl
)
SELECT id FROM ip_addresses WHERE string = $ip_adr Wie würde ich das in ROSE realisieren? Was ich mir so ausgedacht habe fuktioniert leider nicht: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 sub device_add { ########################################### my ( $self, $name, $mac_address, $ip_adr ) = @_; my $ip_id; if($ip_change) { $ip_id = WatchLAN::ip_addresses( $ip_change ); } my $device = WatchLAN::Device->new( mac_address => $mac_address ); $device->load( speculative => 1 ); $device->name($name); $device->ip_static_id($ip_id); $device->save(); } Roland
-- "Steh vorn, während du fragst; sitzen soll, wer antwortet." Aus "Die Edda des Snorri Sturluson" "Gylfis Täuschung" Strophe 2 |