NAME

Net::Telnet::Brcd - Module d'interrogation des switchs Brocade

SYNOPSIS

use Net::Telnet::Brcd;

my $sw = new Net::Telnet::Brcd;

$sw->connect($sw_name,$user,$pass) or die "\n";

%wwn_port = $sw->switchShow(-bywwn=>1);
my @lines = $sw->cmd("configShow");

DESCRIPTION

Bibliothèque d'interrogation via Telnet de switch Brocade.

new

my $brcd = new Net::Telnet::Brcd;

Initialise un objet Brocade. A faire avant toute commande.

connect

$brcd->connect($switch,$user,$pass);

Se connecte à un switch Brocade par la session Telnet. Renvoie undef en cas d'erreur. A faire avant toute commande sur un switch.

cmd

my @results=$brcd->cmd("configShow");

Envoie une commande au switch et récupère les lignes de sorties sans les \r\n. Chaque ligne de sortie est une ligne de tableau.

Dans le cas ou la ligne de commande est envoyée sous forme de tableau:

my @results=$brcd->cmd("aliAdd","toto",":00:00:0:5:4:54:4:5");

La commande est lancée et générée de la façon suivante:

aliAdd "toto", ":00:00:0:5:4:54:4:5"

aliShow

my %alias_to_wwn = $brcd->aliShow();

Passe la commande aliShow et génère un haschage contenant comme clé les alias et comme valeur les WWN.

Si l'option -bywwn est activée:

my %wwn_to_alias = $brcd->aliShow(-bywwn => 1);

c'est l'inverse qui est renvoyée.

Par défaut, l'option -onlywwn est activée. Ceci indique que les ports zonés par port ne sont pas renvoyés. Dans l'autre cas, ils le sont.

Avec l'option -byport, seuls les alias contenant des ports sont renvoyés.

zoneShow

my %zone = $brcd->zoneShow();

La commande renvoie grâce à la commande zoneShow un haschage contenant les membres de chaque zone. Chaque clé de haschage correspond à une zone. Une clé contient chaque membre sous forme de tableau associatif. Exemple:

my %zone = $brcd->zoneShow();

foreach my $zone (%zone) {
    print "$zone:\n\t";
    print join("; ", keys %{$zone{$zone}} ),"\n";
}

Si l'option -bymember est utilisé, c'est l'inverse qui est présenté. C'est à dire à quelle zone appartient un membre. La méthode d'accès est la même.

Si cette méthode d'accès n'est pas aisée, on peut utiliser les fonctions suivantes.

zoneMember

my @member = $brcd->zoneMember("z_sctxp004_0");

Renvoie la liste des membres d'une zone. Un membre est un alias ou un WWN suivant la méthode utilisée.

Cette fonction nécessite d'avoir exécuté la commande $brcd->zoneShow précédemment.

memberZone

my @zones = $brcd->memberZone("w_sctxp004_0");

Renvoie la liste des zones auquel appartient un membre. Un membre est un alias ou un WWN suivant la méthode utilisée.

Cette fonction nécessite d'avoir exécuté la commande $brcd->zoneShow précédemment.

switchShow

my %port = $brcd->switchShow();

Cette commande passe la commande switchShow sur le switch physique de connexion. Ceci permet de donner l'état de chaque port suivant la structure suivante:

$port{<port number}->{SPEED}  = <2G|1G|...>
                   ->{STATUS} = <OnLine|NoLight|...>
                   ->{SLOT}   = numéro de la blade
                   ->{NUMBER} = numéro du port dans la blade
                   ->{TYPE}   = <E-Port|F-Port|...>
                   ->{WWN}    si connecté

Avec l'option -bywwn, la commande renvoie simplement la liste des WWN et les numéros de port associés.

my %wwn_to_port = $brcd->switchShow(-bywwn => 1);

L'optoin -withportname peut être activée, ceci implique de passer la commande portName à chaque port. Le temps de l'exécution est fortement augmenté.

toSlot

my ($slot,$slot_number) = $brcd->toSlot(36);
my $slot_address        = $brcd->toSlot(36);

Cette commande fonctionne que si la commande switchShow a déjà été passée. Elle donne pour un switch type DIRECTOR le slot et le numéro dans le slot pour un numéro de port donné. Pour un switch classique, elle ne renvoie rien.

En contexte scalaire, elle renvoie directement slot/slot_number (format de la commande portShow).

portShow

my %port     = $brcd->portShow($port_number);
my $portname = $brcd->portShow($port_number);

Cette commande fonctionne que si la commande switchShow a déjà été passée.

Elle utilise la commande toSlot pour passer la commande portShow automatiquement quelque soit le type de switch SAN.

En contexte de liste, la commande renvoie un haschage ou la clé est le paramètre (portName par exemple) et la valeur la valeur associée.

Dans un contexte scalaire, la commande portShow renvoie le portname.

output

print $brcd->output();

Retourne la sortie d'une commande passé par $brcd->cmd("...") sous forme de chaîne de caractére directement imprimable à l'écran ou dans un fichier.

wwn_re

my $wwn_re = $brcd->wwn_re();

if (m/($wwn_re)/) {
    ...
}

Retourne une chaîne de caractère correspondant à l'expression régulière de recherche d'un WWN.

fabricShow

my %fabric = $brcd->fabricShow();

Retourne un haschage composé de tous les switchs présents dans une fabric. La valeur contient le DOMAIN et l'IP et la fabric au sens DNS long du switch en question.

currentFabric

my $dns_fabric = $brcd->currentFabric();

Retourne le nom DNS de la fabric.

isWwn

if ($brcd->isWwn($str)) {
    ...
}

Teste une chaine et vérifie que c'est un WWN.

portAlias

my ($domain, $port_number) = $brcd->portAlias("199,6");

Découpe une chaîne au format zoning par port en domaine et numéro de port dans le swtich.

SEE ALSO

Documentation Brocade, Brocade API et Net::Telnet.

AUTHOR

Laurent Bendavid, <laurent.bendavid@dassault-aviation.com>

COPYRIGHT AND LICENSE

Copyright (C) 2006 by Laurent Bendavid

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.3 or, at your option, any later version of Perl 5 you may have available.

Version

1.10

History

Created 6/27/2005, Modified 9/8/05 16:55:04

1 POD Error

The following errors were encountered while parsing the POD:

Around line 24:

Non-ASCII character seen before =encoding in 'Bibliothèque'. Assuming CP1252