Analyse de fichier de modèle de cluster CycleCloud

CycleCloud est en mesure de résoudre les valeurs des paramètres et d’effectuer une évaluation logique des fonctions.

Types de paramètres

CycleCloud gère plusieurs types de paramètres de base. Dans la plupart des cas, il les gère comme prévu :

Attribute = foo      # string
Attribute = 1        # integer
Attribute = 1.1      # double
Attribute = false    # boolean
Attribute = foo, bar # string[]

Pour être plus explicites, les valeurs de chaîne peuvent être entourées de guillemets doubles (par exemple, Attribute = "foo"). Cela peut être utile dans le cas où une valeur ressemble à un nombre, mais doit être interprétée comme une chaîne (numéros de version, par exemple). Les valeurs booléennes peuvent être définies sur les jetons nus true ou false (sans respect de la casse). Les valeurs séparées par des virgules sont interprétées comme des listes, et les éléments sont à leur tour interprétés à l’aide des mêmes règles que ci-dessus.

Évaluation de la valeur du paramètre

CycleCloud interprète directement les valeurs de paramètre qui utilisent la $ notation ou ${} .

MyAttribute = $MyParameter
MyAttribute2 = ${MyParameter2}
MyAttributeList = $Param1, $Param2

Fonctions utilisant des paramètres

L’analyseur de modèles CycleCloud est capable d’effectuer des mathématiques et d’effectuer une analyse logique ternaire, comme indiqué ci-dessous.

MaxCoreCount = ${HyperthreadedCoreCount/2}
SubnetId = ${ifThenElse($Autoscale, $BurstSubnet, $FixedSubnet)}
JetpackPlatform = ${imageselect == "windows" ? "windows" : "centos-7"}

Fonctions disponibles :

Notes

Cette liste n’est pas complète, mais couvre certaines des fonctions les plus couramment utilisées.

ifThenElse

Agit comme un opérateur ternaire. Retourne l’une des deux valeurs d’une expression qui prend la valeur true ou false.

Syntaxe :

ifThenElse(predicate, trueValue, falseValue)

Arguments :

Nom Obligatoire Description
prédicat Oui Expression qui prend la valeur true ou false.
trueValue oui Valeur à utiliser quand predicate est évalué à true.
falseValue oui Valeur à utiliser lorsque predicate prend la valeur false.

ifUndefined

Si le résultat de l’évaluation d’une expression donnée n’est pas défini, retourne une valeur différente à la place. Sinon, retourne simplement le résultat.

Syntaxe :

ifUndefined(expression, value)

Arguments :

Nom Obligatoire Description
expression Oui Expression à évaluer.
value oui Valeur à retourner lorsqu’elle expression est définie sur undefined.

regexp

Effectue une correspondance d’expression régulière sur la chaîne donnée et retourne true s’il y a une correspondance, false dans le cas contraire.

Syntaxe :

regexp(pattern, target, [options])

Arguments :

Nom Obligatoire Description
modèle oui Expression régulière de style Java.
target oui Chaîne d'entrée.
options non Options à utiliser lors de l’évaluation de l’expression régulière. Pour plus d’informations, java.util.regex.Pattern consultez Indicateurs d’expression régulière de Java.

regexps

Effectue la substitution d’expression régulière sur la chaîne donnée et retourne la nouvelle chaîne.

Syntaxe :

regexps(pattern, target, substitution, [options])

Arguments :

Nom Obligatoire Description
modèle oui Expression régulière de style Java qui correspond à la chaîne à remplacer.
target oui Chaîne d'entrée.
substitution Oui Nouvelle chaîne à remplacer à la place de la partie de target laquelle correspond à l’expression régulière.
options non Options à utiliser lors de l’évaluation de l’expression régulière. Pour plus d’informations, java.util.regex.Pattern consultez Indicateurs d’expression régulière de Java.

taille

Retourne la longueur d’une chaîne donnée.

Syntaxe :

size(string)

Arguments :

Nom Obligatoire Description
string Oui Chaîne à vérifier.

strjoin

Concatène plusieurs chaînes à l’aide d’un séparateur.

Syntaxe :

strjoin(separator, strings)

Arguments :

Nom Obligatoire Description
separator oui Séparateur de chaînes à ajouter entre des chaînes.
chaînes oui Liste de chaînes à concaténer. Peut également être spécifié sous la forme d’un nombre variable d’arguments de fonction : strjoin(separator, string1, string2, string3...)

substr

Retourne une partie d’une chaîne de l’index de début à l’index de fin (ou la fin de la chaîne si aucun index de fin n’est donné).

Syntaxe :

substr(string, startIndex, [endIndex])

Arguments :

Nom Obligatoire Description
string Oui Chaîne d'entrée.
index_début Oui Index de début à utiliser.
endIndex non Index de fin facultatif.

trim

Supprime tous les caractères d’espace blanc du début et de la fin d’une chaîne et retourne le résultat.

Syntaxe :

trim(string)

Arguments :

Nom Obligatoire Description
string Oui Chaîne à découper.

Opérateurs disponibles

Opérateur Définition
-, +, /, * arithmétique
<, <=, >=, > Comparateurs
==, != évaluateurs d’égalité
&&, || opérateurs booléens composés

Variable ClusterName spéciale

Une variable toujours fournie est ${ClusterName}. Cette valeur est évaluée au nom du cluster CycleCloud.

EmailAddress = ${strcat("myuser", "@", ClusterName)}
ResourceId = ${ClusterName}-00-resource

Temps relatif

CycleCloud interprète les cycles inverses autour de la durée comme une durée relative ; second, minute et jour.

ThrottleCapacityTime=`10m` 
Attribute1=`30s`
Attribute2=`7d`