Go to main content
Guide d'administration des systèmes Oracle® ZFS Storage Appliance, version OS8.6.x

Quitter la vue de l'impression

Mis à jour : Septembre 2016
 
 

Présentation des workflows

Un workflow est matérialisé par un fichier ECMAscript valide contenant une seule variable globale : workflow. Ce fichier constitue un objet qui doit contenir trois membres au minimum :

Table 125  Membres objets obligatoires
Membre obligatoire
Type
Description
name
String
Nom du workflow
description
String
Description du workflow
execute
Fonction
Fonction exécutant le workflow
Exemple 18  Workflow Hello World

Voici un exemple de workflow basique :

var workflow = {
       name: 'Hello world',
       description: 'Bids a greeting to the world',
       execute: function () { return ('hello world!') }
};

Après téléchargement de ce workflow vers l'appareil, un nouveau workflow nommé "Hello world" est disponible. L'exécution de ce workflow génère la sortie "hello world!"

Exemple 19  Utilisation de la fonction d'exécution de workflow pour obtenir la valeur d'utilisation CPU

Les workflows s'exécutent de manière asynchrone dans le shell de l'appareil ; par défaut, ils s'exécutent comme s'ils étaient eux-mêmes des utilisateurs exécutant des workflows. Les workflows disposent librement de l'utilitaire de script de l'appareil (voir la section Utilisation de l'écriture de scripts CLI) et peuvent interagir avec l'appareil comme n'importe quelle autre instance de shell de l'appareil. En d'autres termes, les workflows peuvent exécuter des commandes, analyser des sorties, modifier des états, etc. L'exemple suivant, plus complexe, utilise la fonction run pour renvoyer l'utilisation actuelle de la CPU :

var workflow = {
       name: 'CPU utilization',
       description: 'Displays the current CPU utilization',
       execute: function () {
               run('analytics datasets select name=cpu.utilization');
               cpu = run('csv 1').split('\n')[1].split(',');
               return ('At ' + cpu[0] + ', utilization is ' + cpu[1] + '%');
       }
};