Tags:
create new tag
, view all tags

Objekte und ihre Methoden

Konventionen

  1. alle Module werden mit use Module; oder require Module; aufgerufen.
  2. sofern nichts anderes vermerkt ist, werden die Methoden immer mit dem Objekt aufgerufen, nicht mit dem Modulnamen. Ausnahmen sind Methoden wie Module->search().
  3. Klassen-Methoden sollen in der Regel mit einem englischen Verb beginnen (get, set, search, grant, revoke, add, remove, etc.) und selbsterklärend sein
  4. Wenn eine Methode fehlschlägt, weil sie mit ungültigen Parametern aufgerufen wurde, soll sie mit einem 'croak' untergehen
  5. Eine Methode soll bloss immer nur eine bestimmte Sache ausführen und nicht - je nach Parameter - unterschiedliche Dinge tun

Person

$person = Person->search(persid=>'12345')
Gibt die gefundene Person zurück
@persons = Person->search(familyname=>'M%er')
Gibt eine Liste aller gefundenen Personen zurück
@employments = $person->get_current_employments()
Liste der aktuellen Anstellungen einer Person
@employments = $person->get_all_employments()
Liste aller Anstellungen einer Person
@addresses = $person->get_current_addresses_of_type('office')
Liste der aktuellen Adressen einer Person (PDB)
@addresses = $person->get_all_addresses_of_type('office')
Liste aller Adressen einer Person (PDB)
@unames = $person->get_unames()
Liste aller Uname einer Person
$person->add_uname($uname)
Usernamen hinzufügen
$person->get_primary_uname
Primären Usernamen zurückgeben


Uname

Ein Uname ist ein Username-Objekt

$uname = Uname->search(username=>'nethz_username')
Gibt das Uname-Objekt mit diesen Kriterien zurück
@unames = Uname->search(username=>'v%')
Gibt alle Uname-Objekte in einem Array zurück, die diese Kriterien erfüllen
$person = $uname->get_person
Personen-Objekt dieses Users zurückgeben
$uname->get_<attribute>()
Attribut ausgeben
$uname->set_<attribute>('wert')
Attribut setzen
$granted_service = $uname->grant_service($service)
Einem User einen Service erteilen
$uname->revoke_service($service)
Einem User einen Service wegnehmen
@granted_services = $uname->get_granted_services()
Liste aller Services, die diesem User erteilt worden sind
$uname->has_service_granted($service)
Gibt 1 zurück, falls dieser Uname diesen Service besitzt.

@groups = $uname->get_groups(TYPE=>['LZ','Studenten','ISG'])
Liste aller Gruppen, in welchen sich der User befindet. TYPE ist optional.

@machines = $uname->get_machines_with_service($service)
Maschinen suchen, für die ein bestimmter User verantwortlich ist. Gibt einen Array der gefundenen Maschinenobjekte zurück.

$directives = $uname->get_service_directives()
Gibt zurück, welche Services für diesen Unamen erzeugt werden sollen. Mehr über die nethz ServiceDirektiven
$directives = $uname->get_service_option_directives($service)
Gibt die Service-Optionen für diesen User zurück, z.B. welche Emailadresse als Hauptadresse gesetzt werden soll. Mehr über die nethz ServiceDirektiven


Member

Ein Member ist ein Uname, welcher Mitglied einer Gruppe ist und in dieser Gruppe als Mitglied eine bestimmte Rolle innehat.

@members = $group->get_members()
gibt alle Member-objekte dieser Gruppe zurück.
$uname = $member->get_uname()
gibt das entsprechende Uname-Objekt für diesen Member zurück.
$role = $member->get_role()
gibt das entsprechende Rollen-Objekt für diesen Member zurück.


Service

$service = Service->search(name=>'service-name')
gibt ein Service-Objekt zurück ($service)
@services = Service->get_all_services()
gibt alle Services zurück
$service->get_<attribute>()
Attribut ausgeben
$service->set_<attribute>('wert')
Attribut setzen

@unames = $service->get_unames()
gibt alle User zurück, denen dieser Service erteilt wurde
@granted_services = $service->get_granted_services($uname)
Gibt die spezifischen Informationen zum erteilten Service zurück
@granted_services = $service->get_granted_services($machine)
Gibt die spezifischen Informationen zum erteilten Service zurück


Machine

Maschinen haben eine Reihe von Verknüpfungen zu anderen Objekten (Netbackupverantwortliche, MAC-Adressen, Inventar, Systemverantwortliche, Services etc.)

$machine = Machine->new({name=>'Maschinenname', description=>'Beschreibung', location=>'Standort', serialnumber=>'Seriennummer'})
Erstellt ein neues Maschinen-Objekt (nur name ist erforderlich)
$machine = Machine->search(name=>'meine maschine')
Maschine suchen, die einen bestimmten Namen hat. Gibt ein Maschinen-Objekt zurück

$machine->get_<attribute>()
Wert eines Attributs ausgeben
$machine->set_<attribute>('wert')
Wert eines Attributs setzen
$machine->save()
Speichert die Maschine in der Datenbank

$granted_service = $machine->grant_service($service, {enabled=>1, valid_from=>'sysdate', valid_until=>'forever'})
Einer Maschine einen Service zufügen (Netbackup, Überwachung etc.). Der Anonyme Hash für die spezifischen Servicedaten ist optional.
$machine->revoke_service($service)
Service einer Maschine wegnehmen
$granted_service = $machine->get_granted_service($service)
Gibt ein Granted_Service-Objekt zurück, sofern diese Maschine diesen Service erteilt bekommen hat.
$granted_service = $machine->get_granted_service('Netbackup')
wie oben, aber mit Angabe des Servicenamens.
@granted_services = $machine->get_granted_services()
Gibt alle erteilten Services dieser Maschine zurück
@machines = Machine->get_machines_with_service($service)
Maschinen suchen, die einen bestimmten Service haben. Gibt einen Array der gefundenen Maschinenobjekte zurück.
$netstat_info = $machine->get_netstat_info()
Gibt die aktuelle Netzwerk-Statistik für diesen Hostnamen aus.
$observation = $machine->get_observation()
Gibt die Überwachungs-Daten zurück


Granted_Service

Granted_Service Objekte enthalten die Informationen über die einer Maschine oder einem Server erteilten ("granted") Services. (siehe Tabelle MACHINE_SERVICE).

$granted_service->add_responsible_group($group)
Fügt eine Service-Verantwortliche Gruppe zum erteilten Service hinzu (Bsp. Netbackup-Gruppe)
$granted_service->add_responsible_uname($uname)
Fügt einen Service-Verantwortlichen Uname zum erteilten Service hinzu
$granted_service->remove_responsible_group($group)
Nimmt eine Service-Verantwortliche Gruppe zum erteilten Service weg (Bsp. Netbackup-Gruppe)
$granted_service->remove_responsible_uname($uname)
Nimmt einen Service-Verantwortlichen Uname zum erteilten Service weg

@unames = $granted_service->get_responsible_unames()
Gibt die für diesen Service verantwortlichen User zurück
@groups  = $granted_service->get_responsible_groups()
Gibt die für diesen Service verantwortliche Gruppe zurück
$truefalse = $granted_service->exists_responsible()
Gibt einen wahren Wert zurück, sofern für diesen Service mindestens 1 Uname oder 1 Gruppe verantwortlich ist.

$service_info = $granted_service->get_service_info()
Gibt die Serviceinformationen eines erteilten Services zurück. Gibt undef zurück, falls für diesen Service keine Zusatzinformationen existieren


Server

Softwareeinheiten, welche elektronische Dienste anbieten, werden als Server bezeichnet. Diese Software kann grundsätzlich auf mehreren Maschinen laufen (z.B. Exchange Mailserver). Sie kann aber auch in mehreren Instanzen auf derselben Maschine laufen, wie es beispielsweise bei einem Webserver der Fall ist.

$server = Server->new({name=>'Servername', description=>'Beschreibung', url=>'http://passwort.ethz.ch'})
Erstellt ein neues Server-Objekt (nur name ist erforderlich)
$server->delete
Server löschen

$granted_service = $server->grant_service($service, {enabled=>1, valid_from=>'sysdate', valid_until=>'forever'})
Einem Server einen Service zufügen (z.B. Überwachung). Der Anonyme Hash für die spezifischen Servicedaten ist optional.
$granted_service = $machine->get_granted_service($service)
Gibt ein Granted_Service-Objekt zurück, sofern diese Maschine diesen Service erteilt bekommen hat.
@granted_services = $machine->get_granted_services()
Gibt alle erteilten Services dieser Maschine zurück
$server->revoke_service($service)
Service einem Server wegnehmen
@machines = $server->get_machines()
Alle Maschinen, auf welchen dieser Server läuft

$server->add_machine($machine)
Maschine hinzufügen
$server->remove_machine($machine)
Maschine vom Server-System entfernen


Service_Info

Service_Info gibt es nicht als eigentliches Modul. Hingegen kriegt man mit
$service_info = $granted_service->get_service_info()
ein entsprechendes Objekt zurück, welches Service-abhängige Methoden bereitstellt. Folgende Methoden gelten für die Netbackup-Serviceinformationen:

$service_info->get_status()
Status anzeigen
$service_info->get_remarks()
Bemerkungen
$service_info->get_info()
XML-String, für Netbackup-eigene Daten
$service_info->get_email_notification()
Emailadresse für Benachrichtigung

$service_info->set_status()
Status setzen
$service_info->set_remarks()
Bemerkungen
$service_info->set_info()
XML-String, für Netbackup-eigene Daten
$service_info->set_email_notification()
Emailadresse für Benachrichtigung

$service_info->save()
Service-Informationen speichern


Observation

@observations = Observation->get_observations()
Gibt alle Überwachungen zurück
$is_machine = $observation->is_machine()
Gibt einen true-Wert zurück, sofern es sich um eine überwachte Maschine handelt
$machine = $observation->get_machine()
Gibt die Maschine zurück
$is_server  = $observation->is_server()
Gibt einen true-Wert zurück, sofern es ich um einen überwachten Service/Server handelt
$server = $observation->get_server()
Gibt den Server zurück
$observation->save()
speichert die Überwachungsinformationen in die DB.
Observation->sync()
Synchronisiert die DB mit dem alarmhost - File.


Ngroup

new(name=>'Gruppenname', description=>'Beschreibender Text', type=>'Service')
gibt ein Gruppen-Objekt zurück
$group->save()
speichert/aktualisiert diese Gruppe in der Datenbank
$group = Group->search(name=>'Gruppenname', type=>'Service')
gibt die (erste) Gruppe mit den angegebenen Kriterien zurück)
@groups = Group->search(type=>'Service')
gibt einen Array von Gruppen(objekten), welche für einen bestimmten Service verantwortlich sind, zurück.
$group->add_member($uname)
Mitglied hinzufügen
@unames = $group->get_members()
gibt die Liste aller Unames zurück, die in dieser Gruppe sind
@unames = $group->get_all_members()
gibt die Liste aller Unames dieser Gruppe und aller darin enthaltenen Untergruppen zurück
@groups = $group->get_subgroups()
gibt die Liste aller Untergruppen zurück, die in dieser Gruppe sind
@groups = $group->get_all_subgroups()
analog zu get_all_members() für Untergruppen


NETng::MAC_Address

$mac = NETng::MAC_Address->new(MAC_ADDRESS=>'00-14-22-2d-67-f5', MACHID=>'12345', DESCRIPTION=>'Ethernet1')
erstellt ein neues MAC_ADDRESS-Objekt. Die MACHID ist die ID der Maschine. Diese Prozedur sollte nur intern verwendet werden. Für die Zuweisung einer Macadresse zu einer Maschine sollte $machine->add_macaddress(MAC_ADDRESS=>'00-14-22-2d-67-f5', DESCRIPTION=>'Ethernet1') verwendet werden.
$mac->save()
Speichert die Macadresse permanent.
@macs = NETng::MAC_Address->search(MAC_ADDRESS=>'00-14-22-2d-67-f5')
MAC-Adressen suchen
$mac->set_profile($profile)
Profil einer MAC-Adresse zuweisen
@profiles = $mac->get_profiles()
Alle zu einer Macadresse zugewiesenen Profile zurückgeben
$mac->remove_profile($profile)
Die Profilzuweisung zu einer MAC-Adresse aufheben
$mac->delete()
MAC-Adresse permanent löschen und alle Profilzuweisungen aufheben


Netbackup_SM

@netbackups = Netbackup_SM->search(status=>'active')
Gibt alle Netbackupobjekte mit den entsprechenden Kriterien zurück. Gibt im skalaren Kontext das erste Objekt zurück.
$machine = $netbackup->get_machine()
Gibt die Maschine für diesen Netbackup-Service zurück.


-- Main.vermeul - 29 Mar 2006

Topic revision: r34 - 2006-10-11 - SwenVermeul
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2017 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback