Evènements (VDSmanager)

De ISPWiki.

Le mécanisme des évènements de VDSmanager sert d'une extension supplémentaire du panneau grâce à l'ajout des programmes CGI d'utilisateur ou des scripts qui seront lancés automatiquement après l'exécution d'une fonction adéquate de VDSmanager. Pour donner un exemple, nous décrivons la situation où après la création d'un [vds serveur dédié virtuel] vous avez besoin de faire certaines manipulations, par exemple, d'ajouter un enregistrement dans la base de données ou d'envoyer un message par mail.

Il est nécessaire de placer tels scripts dans le répertoire /usr/local/ispmgr/event, fixer les droits 700, indiquer root comme un propriétaire et nommer par le nom d'un évènement correspondant de VDSmanager, par exemple, vds.edit.new. Vous pouvez obtenir la liste de tous les évènements accessibles (pour la version du panneau de configuration désirée) à l'aide de la fonction eventlist, par exemple avec la commande suivante de shell:

wget -O - -q "http://127.0.0.1/manager/vdsmgr?out=text </jscript> </metadata> <lang name="en"> <messages name="vds.edit"> <msg name="email">E-Mail</msg> <msg name="hint_email">Used for sending welcome email</msg> </messages> </lang> </mgrdata>

Ce fichier doit être placé dans le répertoire /usr/local/ispmgr/etc et nommé "vdsmgr_mod_имя.xml". Le "nom" peut être facultatif. Si le document XML contient des erreurs , VDSmanager ne pourra pas être lancé c'est pourquoi vous devez être très attentif. Alors nous allons examiner ce document XML.

L'expression <metadata name="vds.edit"> signifie que vous allez modifier le formulaire de paramètres du serveur dédié virtuel (un seul formulaire pour créer, afficher et modifier les paramètres).

L'expression <field name="email" id="email" hidden="yes"> signifie que vous allez ajouter par défaut un champ caché nommé "email". <input type="text" name="email" /> signifie qu'il est nécessaire d'ajouter un élément de gestion du type "text" nommé "email".

Ensuite vient Javascript où il est spécifié qu'il faut faire une manipulation déterminée si lors de l'appel du formulaire, le panneau de configuration n'a pas obtenu le paramètre elid, ce qui peut arriver uniquement lors de la création d'un nouvel élémént. C'est à dire vous verrez ce champ uniquement lors de la création d'un nouveau objet. La fonction javascript fr_hs_fields incorporée dans le panneau de configuration est destinée à afficher ou cacher des champs. Il est indispensable de spécifier en premier l'ensemble des noms des champs qui doivent être cachés, et en deuxième - les paramètres qui doivent être affichés. En effet le champ est caché par défaut, nous avons ajouté un code afin qu'il soit affiché quand un nouveau serveur dédié virtuel est créé.

L'expression <lang name="en"> signifie que nous voulons ajouter des messages (les noms de champs et des descriptifs) en anglais (en). Puis nous avons <messages name="vds.edit">, ce qui signifie que nous voulons ajouter des messages pour le module vds.edit.

Ensuite nous avons la description des messages. L'argument "name" pour le message correspondant au titre du champ ajouté dans le formulaire doit correspondre au nom du champ adéquat, c'est à dire "émail". L'argument "name" du descriptif pour ce champ doit être commencé par "hint_".

Ensuite il est nécessaire d'écrire un programme CGI ( un script) qui enverra des messages lors de la création d'un nouveau serveur dédié virtuel. Car dans notre cas c'est la création d'un nouvel élément, notre fonction doit être nommée vds.edit.new.

#!/usr/bin/perl use CGI qw/:standard/; = new CGI; = ->param(email); = ->param(name); open(M, "|/usr/sbin/sendmail") or die("unable open sendmail"); print M "From: info\@example.com\n"; print M "To: \n"; print M "Subject: New VDS\n"; print M "Content-type: text/plain\n\n"; print M "Your VDS is ready!\n"; print M "... some welcome text ...\n\n"; close (M);

Comme vous voyez les valeurs des champs du formulaire rempli (dans notre cas: email et name) sont indiquées comme les paramètres du script CGI. Il est possible de les appeler de la manière standard.

Nous allons placer ce script dans le répertoire /usr/local/ispmgr/event et lui fixer les droits 700. Après cela nous devons relancer la panneau de configuration pour enregistrer les modifications:

killall vdsmgr

Cet article vous a-t-il été utile? Oui | Non
Affichages
Outils personnels