CTM::ReadEM - Consultation de Control-M EM 6/7/8 a travers son SGBD.
use CTM::ReadEM qw/:functions/; my $session = CTM::ReadEM->new( version => 7, DBMSType => "Pg", DBMSAddress => "127.0.0.1", DBMSPort => 3306, DBMSInstance => "ctmem", DBMSUser => "root", DBMSPassword => "root" ); $session->connect() || die $session->getError(); my $workOnServices = $session->workOnCurrentBIMServices(); unless (defined ($err = $session->getError())) { $workOnServices->keepItemsWithAnd({ service_name => sub { shift =~ /^SVC_HEADER_/ } }); print $_->{service_name} . " : " . getStatusColorForService($_) . "\n" for (values %{$workOnServices->getItems()}); } else { die $err; }
CTM::Base
CTM::Base::MainClass
CTM::ReadEM::workOnCurrentBIMServices
CTM::ReadEM::WorkOnAlarms
CTM::ReadEM::WorkOnExceptionAlerts
Sub::Name
Carp
String::Util
List::MoreUtils
Hash::Util
Exporter::Easy
Date::Calc
POSIX
CTM::ReadEM
Importe $VERSION et les fonctions publiques listees au lien suivant : "FONCTIONS PUBLIQUES (importables depuis CTM::ReadEM)".
$VERSION
Importe les fonctions publiques listees au lien suivant : "FONCTIONS PUBLIQUES (importables depuis CTM::ReadEM)".
Importe les fonctions publiques listees au lien suivant : "getNbSession*()".
Importe les fonctions publiques listees au lien suivant : "... liees a la generation ou au traduction d'informations en rapport avec BIM, GAS ou EA".
Cette methode est le constructeur du module CTM::ReadEM. CTM::ReadEM->newSession() est un equivalent.
CTM::ReadEM->newSession()
my $session = CTM::ReadEM->new( version => 7, DBMSType => "Pg", DBMSAddress => "127.0.0.1", DBMSPort => 3306, DBMSInstance => "ctmem", DBMSUser => "root", DBMSPassword => "root" );
la liste des parametres du constructeur sont listes au lien suivant : "PROPRIETES PUBLIQUES (CTM::ReadEM)".
Pour information, le destructeur DESTROY() est appele lorsque toutes les references a l'objet instancie ont ete detruites (undef $session; par exemple).
DESTROY()
undef $session;
Retourne toujours un objet.
Permet de se connecter a la base du Control-M EM avec les parametres fournis au constructeur CTM::ReadEM->new). CTM::ReadEM->connectToDB() est un equivalent.
CTM::ReadEM->new)
CTM::ReadEM->connectToDB()
$session->connect() || die $session->getError();
Retourne 1 si la connexion a reussi sinon 0.
Permet de se deconnecter de la base du Control-M EM mais elle n'apelle pas le destructeur DESTROY(). CTM::ReadEM->disconnectFromDB() est un equivalent.
CTM::ReadEM->disconnectFromDB()
$session->disconnect() || warn $session->getError();
Retourne une reference de la table de hachage de la liste des services en cours dans le BIM.
my $hashRef = $session->getCurrentBIMServices( matching => '%', forStatus => [qw/OK/] );
Un filtre est disponible avec le parametre "matching" (SQL LIKE clause).
LIKE
Le parametre "forLastNetName" accepte un booleen. Si il est vrai alors cette methode ne retournera que les services avec la derniere ODATE. Faux par defaut.
Le parametre "handleDeletedJobs" accepte un booleen. Si il est vrai alors cette methode ne retournera que les services (jobs de type "BIM") qui n'ont pas ete supprimes du plan. Vrai par defaut.
Le parametre "forStatus" doit etre une reference d'un tableau. Si c'est le cas, la methode ne retournera que les services avec les statuts renseignes (statuts valides (sensibles a la case) : "OK", "Completed_OK", "Completed_Late", "Warning", "Error") dans ce tableau.
Le parametre "forDataCenters" doit etre une reference d'un tableau. Si c'est le cas, la methode ne retournera que les services pour les datacenters renseignes.
La cle de cette table de hachage est "log_id".
Retourne 0 si la methode a echouee.
Derive de la methode $session->getCurrentBIMServices(), elle "herite" donc de ses parametres.
$session->getCurrentBIMServices()
my $workOnServices = $session->workOnCurrentBIMServices( matching => 'A%' );
Fonctionne de la meme maniere que la methode $session->getCurrentBIMServices() mais elle est surtout le constructeur du module CTM::ReadEM::workOnCurrentBIMServices qui met a disposition les methodes (BIM) suivantes :
Retourne l'objet (de la classe CTM::ReadEM) via lequel $workOnServices a ete instancie. Par exemple, ceci fonctionne :
$workOnServices
$workOnServices->getParentClass()->disconnect();
Retourne une reference de la table de hachage de la liste des parametres utilisateur de l'objet $workOnServices.
Retourne le nombre de services pour l'objet $workOnServices.
Retourne une reference de la table de hachage de la liste des services de l'objet $workOnServices.
Rafraichi l objet $workOnServices avec les parametres passes lors de la creation de l'objet $workOnServices.
Retourne 1 si le rafraichissement a fonctionne ou 0 si celui-ci a echoue.
Retourne un clone complet de l'objet.
Retourne toujours un objet. L'objet retourne est le meme que celui sur lequel cette methode est invoquee.
$workOnServices->keepItemsWithAnd({ timestamp => getExprForStatusColorForService('OK') });
Cette methode permet de filtrer les items (de l'objet) a conserver en opposant a un ou plusieurs champs de chacuns des items une reference de fonction passee. Toutes les tests sur les champs doivent etre positifs pour que l'item soit conserve sur l'objet.
Cette methode permet de filtrer les items (de l'objet) a conserver en opposant a un ou plusieurs champs de chacuns des items une reference de fonction passee. Un test de champ minimum doit etre positif pour que l'item soit conserve sur l'objet.
Retourne une reference vers une table de hachage qui contient la liste des jobs Control-M problematiques pour chaque "log_id" (accepte une reference de tableau de "log_id" en parametre sinon utilise les "log_id" de l'objet).
Retourne une reference vers une table de hachage qui contient la liste des alertes pour chaque "log_id" (accepte une reference de tableau de "log_id" en parametre sinon utilise les "log_id" de l'objet).
Retourne une reference de la table de hachage de la liste des alarmes en cours dans le GAS.
my $hashRef = $session->getAlarms( severity => 'Regular' );
Un filtre est disponible sur le message des alarmes avec le parametre "matching" (SQL LIKE clause).
Le parametre "severity" doit etre une reference d'un tableau. Si c'est le cas, la methode ne retournera que les alarmes avec les pour les severites renseignees (severites valides (sensibles a la case) : "Regular", "Urgent", "Very_Urgent") dans ce tableau.
Le parametre "timeSort" : SQL ORDER BY . Il trie les donnees renvoyees de maniere ascendante (SQL ASC (insensible a la case)) ou descendante (SQL DESC (insensible a la case)) sur la date de l'alerte.
ORDER BY
ASC
DESC
La cle de cette table de hachage est "serial".
Derive de la methode $session->getAlarms(), elle "herite" donc de ses parametres.
$session->getAlarms()
my $workOnAlarms = $session->workOnAlarms( severity => 'Urgent' );
Fonctionne de la meme maniere que la methode $session->getAlarms() mais elle est surtout le constructeur du module CTM::ReadEM::WorkOnAlarms qui met a disposition les methodes (GAS) suivantes :
Retourne l'objet (de la classe CTM::ReadEM) via lequel $workOnAlarms a ete instancie. Par exemple, ceci fonctionne :
$workOnAlarms
$workOnAlarms->getParentClass()->disconnect();
Retourne une reference de la table de hachage de la liste des parametres utilisateur de l'objet $workOnAlarms.
Retourne le nombre d'alarmes pour l'objet $workOnAlarms.
Retourne une reference de la table de hachage de la liste des alarmes de l'objet $workOnAlarms.
Rafraichi l objet $workOnAlarms avec les parametres passes lors de la creation de l'objet $workOnAlarms.
$workOnAlarms->keepItemsWithAnd({ severity => getExprForSeverityForAlarms('Regular') });
Notifie la ou les alarmes.
Une reference vers un tableau d'ID ('serial') peut etre passee (mais PAS obligatoire, dans quel cas la methode s'appliquera au elements attaches a l'objet en parametre afin de filtrer les alarmes a traiter.
Retourne 1 si l'operation a fonctionnee sinon 0.
Denotifie la ou les alarmes.
Prend en compte la ou les alarmes.
Annule la prise en compte du ou des alarmes.
Supprime la ou les alarmes.
Modifie la severite du ou des alarmes. Les valeurs possibles sont 'R' (Regular), 'U' (Urgent) et 'V' (Very Urgent).
$workOnAlarms->setSeverity('R');
La note de ou des alarmes est egale a $note.
$note
$workOnAlarms->setNote('Ces alarmes sont prises en compte.');
Retourne une reference de la table de hachage de la liste des alertes en cours dans l'EA.
my $hashRef = $session->getExceptionAlerts( severity => 'Severe' );
Un filtre est disponible sur le message des alertes avec le parametre "matching" (SQL LIKE clause).
Le parametre "severity" doit etre une reference d'un tableau. Si c'est le cas, la methode ne retournera que les alertes avec les pour les severites renseignees (severites valides (sensibles a la case) : "Warning", "Error", "Severe") dans ce tableau.
Derive de la methode $session->getExceptionAlerts(), elle "herite" donc de ses parametres.
$session->getExceptionAlerts()
my $workOnExceptionAlerts = $session->workOnExceptionAlerts( severity => 'Severe' );
Fonctionne de la meme maniere que la methode $session->getExceptionAlerts() mais elle est surtout le constructeur du module CTM::ReadEM::WorkOnExceptionAlerts qui met a disposition les methodes (EA) suivantes :
Retourne l'objet (de la classe CTM::ReadEM) via lequel $workOnExceptionAlerts a ete instancie. Par exemple, ceci fonctionne :
$workOnExceptionAlerts
$workOnExceptionAlerts->getParentClass()->disconnect();
Retourne une reference de la table de hachage de la liste des parametres utilisateur de l'objet $workOnExceptionAlerts.
Retourne le nombre d'alertes pour l'objet $workOnExceptionAlerts.
Retourne une reference de la table de hachage de la liste des alertes de l'objet $workOnExceptionAlerts.
Rafraichi l objet $workOnExceptionAlerts avec les parametres passes lors de la creation de l'objet $workOnExceptionAlerts.
$workOnExceptionAlerts->keepItemsWithAnd({ severity => getExprForSeverityForExceptionAlerts('Severe') });
Prend en compte la ou les alertes.
Une reference vers un tableau d'ID ('serial') peut etre passee (mais PAS obligatoire, dans quel cas la methode s'appliquera au elements attaches a l'objet en parametre afin de filtrer les alertes a traiter.
Annule la prise en compte d'une ou des alertes.
Supprime la ou les alertes.
La note d'une ou des alertes est egale a $note.
$workOnExceptionAlerts->setNote('Ces alertes sont prises en compte.');
Verifie et retourne l'etat de la connexion au SGBD.
ATTENTION, n'est pas fiable pour tous les types de SGBD (pour plus de details, voir http://search.cpan.org/dist/DBI/DBI.pm#ping et les implementation de cette methode dans les drivers utilises par DBI (par exemple, http://search.cpan.org/~turnstep/DBD-Pg-3.4.2/Pg.pm#ping)).
Retourne l'etat (booleen) de la connexion a la base du Control-M EM telle qu'elle devrait etre.
Type de SGBD du Control-M EM auquel se connecter.
Les valeurs acceptees sont "Pg", "Oracle", "mysql", "Sybase" et "ODBC". Pour une connexion a MS SQL Server, les drivers "Sybase" et "ODBC" fonctionnent.
Adresse du SGBD du Control-M EM auquel se connecter.
Port du SGBD du Control-M EM auquel se connecter.
Instance (ou base) du SGBD du Control-M EM auquel se connecter.
Utilisateur du SGBD du Control-M EM auquel se connecter.
Mot de passe du SGBD du Control-M EM auquel se connecter.
Timeout (en seconde) de la tentavive de connexion au SGBD du Control-M EM.
La valeur 0 signifie qu aucun timeout ne sera applique.
ATTENTION, cette propriete risque de ne pas fonctionner sous Windows (ou sur d'autres OS ne gerant pas les signaux UNIX).
Active la verbose du module, affiche les requetes SQL executees sur STDERR.
Ce parametre accepte un booleen. Faux par defaut.
Retourne le nombre d instances en cours pour le module CTM::ReadEM.
Retourne le nombre d instances en cours et connectees a la base du Control-M EM pour le module CTM::ReadEM.
Cette fonction permet de convertir le champ "status_to" de la table de hachage generee par la methode getCurrentBIMServices() (et ses derives) en un statut lisible ("OK", "Completed OK", "Completed Late", "Warning", "Error").
getCurrentBIMServices()
Retourne 0 si la valeur du parametre fourni n'est pas reconnu.
Cette fonction permet de convertir le champ "status_to" de la table de hachage generee par la methode getAlarms() (et ses derives) en un statut lisible ("Regular", "Urgent", "Very_Urgent").
getAlarms()
Cette fonction permet de convertir le champ "status_to" de la table de hachage generee par la methode getExceptionAlerts() (et ses derives) en un statut lisible ("Warning", "Error", "Severe").
getExceptionAlerts()
Cette fonction converti les statuts "OK", "Completed OK", "Completed Late", "Warning", et "Error" (valeurs possibles en parametre) en une reference de fonction (pouvant notamment etre utilisee par les methodes keepItemsWithAnd() et keepItemsWithOr()).
Retourne une reference vers la fonction anonyme sub { shift =~ // } si le statut fourni est inconnu.
Cette fonction converti les severites "Regular", "Urgent" et "Very_Urgent" (valeurs possibles en parametre) en une reference de fonction (pouvant notamment etre utilisee par les methodes keepItemsWithAnd() et keepItemsWithOr()).
Retourne une reference vers la fonction anonyme sub { shift =~ // } si la severite fourni est inconnu.
Cette fonction converti les severites "Warning", "Error" et "Severe" (valeurs possibles en parametre) en une reference de fonction (pouvant notamment etre utilisee par les methodes keepItemsWithAnd() et keepItemsWithOr()).
Retourne une reference vers la fonction anonyme sub { shift =~ // } si le severites fourni est inconnu.
Retourne la valeur de la propriete $propertyName.
$propertyName
my $DBMSPassword = $session->getProperty('getProperty');
Leve une exception (carp()) si celle-ci n'existe pas et retourne 0.
carp()
Remplace la valeur de la propriete publique $propertyName par $value.
$value
if ($session->setPublicProperty('verbose', 1)) { print "Verbose activee.\n"; $session->getCurrentBIMServices(); # affiche les requetes SQL utilisees sur STDERR $session->setPublicProperty('verbose', 0) && print "Verbose desactivee.\n"; $session->getCurrentBIMServices(); # n'affiche rien sur STDERR }
Retourne 1 si la valeur de la propriete a ete modifiee.
Leve une exception (carp()) si c'est une propriete privee ou si celle-ci n'existe pas et retourne 0.
Retourne l'erreur a l'element $item (0 par defaut, donc la derniere erreur generee) du tableau de la reference reserve au stockage des erreurs.
$item
printf "Derniere erreur pour ma session : %s\n", $session->getError(); printf "Derniere erreur sur mon objet BIM : %s\n", $workOnServices->getError();
Retourne undef si il n'y a pas d'erreur ou si la derniere a ete decalee via la methode $obj->unshiftError().
undef
$obj->unshiftError()
Une partie des erreurs sont gerees via le module Carp et ses deux fonctions croak et carp (notamment le fait de ne pas correctement utiliser les methodes/fonctions)).
croak
carp
Retourne la reference du tableau reserve au stockage des erreurs.
Retourne le nombre d'erreurs generees (et non-decalee via la methode $obj->unshiftError()) pour l'objet $obj.
$obj
Decale la valeur de la derniere erreur et la remplace par undef.
Retourne toujours 1.
Cette methode est appelee avant l'execution de la plupart des accesseurs/mutateurs.
Nettoie toutes les erreurs.
use CTM::ReadEM qw/:functions/; my $session1 = CTM::ReadEM->new( version => 7, DBMSType => "Pg", DBMSAddress => "127.0.0.1", DBMSPort => 3306, DBMSInstance => "ctmem", DBMSUser => "root", DBMSPassword => "root" ); print getNbEMSessionsCreated(); # affiche "1"
# [...] $session->connect() || die $session->getError(); my $servicesHashRef = $session->getCurrentBIMServices(); unless (defined ($err = $session->getError())) { printf "%s : %s\n", $_->{service_name}, getStatusColorForService($_) for (values %{$servicesHashRef}); } else { die $err; }
- CTM : BMC Control-M.
- Control-M EM : BMC Control-M Enterprise Manager.
- BIM : BMC Batch Impact Manager.
- GAS : BMC Global Alert Server.
- CM : BMC Control-M Configuration Manager.
- Ce module se base en partie sur l'heure du systeme qui le charge. Si celle ci est fausse, certains resultats le seront aussi.
- Ce module est surtout dedie a la consultation depuis Control-M EM et certains de ses composants mais certaines methodes permettant d'exploiter Control-M EM (par exemple les methodes handle() ou delete()). Cependant, ces actions ne seront pas forcement immediatement visibles depuis la GUI de Control-M EM.
handle()
delete()
- Les elements prefixes de "_" sont proteges ou prives et ne doivent pas etre manipules par l'utilisateur. Ces donnees sont "verouillees" via Hash::Util pour eviter toutes fausses manipulations.
- Certaines fonctions normalements privees sont disponibles pour l'utilisateur mais ne sont pas documentees et peuvent etre fatales (pas forcement de prototypage, pas de gestion des exceptions, etc, ...).
- "oldschool" pour le moment, les versions 0.21 et + de ces modules se baseront sur Moose.
- Depot GitHub : http://github.com/le-garff-yoann/CTM
Le Garff Yoann <pe.weeble@yahoo.fr>
Voir licence Perl.
To install CTM, copy and paste the appropriate command in to your terminal.
cpanm
cpanm CTM
CPAN shell
perl -MCPAN -e shell install CTM
For more information on module installation, please visit the detailed CPAN module installation guide.