Présentation
SnapCenter Server vous permet de déployer et de gérer vos applications en tant que plug-ins pour SnapCenter. Les applications de votre choix peuvent être connectées au serveur SnapCenter pour assurer la protection et la gestion des données.
SnapCenter vous permet de développer des plug-ins personnalisés à l'aide de différents langages de programmation. Vous pouvez développer un plug-in personnalisé à l'aide de Perl, Java, BATCH ou d'autres langages de script.
Pour utiliser des plug-ins personnalisés dans SnapCenter, vous devez effectuer les tâches suivantes :
-
Créez un plug-in pour votre application en suivant les instructions de ce guide
-
Créez un fichier de description
-
Exportez le plug-in personnalisé pour l'installer sur l'hôte SnapCenter
-
Chargez le fichier zip du plug-in dans SnapCenter Server
Gestion générique du plug-in dans tous les appels API
Pour chaque appel d'API, utilisez les informations suivantes :
-
Paramètres du plug-in
-
Codes de sortie
-
Consigner les messages d'erreur
-
La cohérence des données
Utiliser les paramètres du plug-in
Un ensemble de paramètres est transmis au plug-in dans le cadre de chaque appel d'API effectué. Le tableau suivant répertorie les informations spécifiques pour les paramètres.
Paramètre | Objectif |
---|---|
ACTION |
Détermine le nom du flux de travail. Par exemple, découverte, sauvegarde, fileOrVolRestore ou cloneVolAndLun |
RESSOURCES |
Répertorie les ressources à protéger. Une ressource est identifiée par un UID et un Type. La liste est présentée au plug-in au format suivant : “<UID>,<TYPE>;<UID>,<TYPE>”. Par exemple, “Instance1,instance;Instance2\\DB1,Database” |
NOM_APPLICATION |
Détermine le plug-in utilisé. Par exemple, DB2 et MYSQL. Le serveur SnapCenter prend en charge les applications répertoriées. Ce paramètre est sensible à la casse. |
APP_IGNORE_ERROR |
(O ou N) cela entraîne la fermeture ou l'arrêt de SnapCenter en cas d'erreur d'application. Cette fonction est utile lorsque vous sauvegardez plusieurs bases de données et ne souhaitez pas que l'opération de sauvegarde soit effectuée en cas d'échec unique. |
<RESOURCE_NAME>__APP_INSTANCE_USERNAME |
Les informations d'identification SnapCenter sont définies pour la ressource. |
<NOM_RESSOURCE>_APP_INSTANCE_PASSWORD |
Les informations d'identification SnapCenter sont définies pour la ressource. |
<NOM_RESSOURCE>_<PARAM_PERSONNALISÉE> |
Chaque valeur de clé personnalisée au niveau des ressources est disponible pour les plug-ins préfixés avec «<NOM_RESSOURCE>_ ». Par exemple, si une clé personnalisée est “MASTER_SLAVE” pour une ressource nommée “MySQLDB”, elle sera disponible en tant que MySQLDB_MASTER_SLAVE |
Utiliser les codes de sortie
Le plug-in renvoie l'état de l'opération à l'hôte au moyen de codes de sortie. Chaque code a une signification spécifique et le plug-in utilise le code de sortie droit pour indiquer la même chose.
Le tableau suivant décrit les codes d'erreur et leur signification.
Code de sortie | Objectif |
---|---|
0 |
Opération réussie. |
99 |
L'opération demandée n'est pas prise en charge ou mise en œuvre. |
100 |
Échec de l'opération, ignorer la mise en veille et quitter. La mise en attente est par défaut. |
101 |
Échec de l'opération, poursuivre l'opération de sauvegarde. |
autre |
Échec de l'opération, exécution sans mise en veille et fermeture. |
Consigner les messages d'erreur
Les messages d'erreur sont transmis du plug-in au serveur SnapCenter. Le message inclut le message, le niveau du journal et l'horodatage.
Le tableau suivant répertorie les niveaux et leurs objectifs.
Paramètre | Objectif |
---|---|
INFO |
message informatif |
AVERTISSEMENT |
message d'avertissement |
ERREUR |
message d'erreur |
DÉBOGAGE |
message de débogage |
TRACÉ |
message de trace |
Préservez la cohérence des données
Les plug-ins personnalisés préservent les données entre les opérations liées à la même exécution du flux de travail. Par exemple, un plug-in peut stocker des données à la fin de la mise en veille, qui peuvent être utilisées pendant l'opération de mise en veille.
Les données à préserver sont définies dans le cadre de l'objet résultat par le plug-in. Il suit un format spécifique et est décrit en détail sous chaque style de développement de plug-in.