Comparaison entre OSC CLI et oapi-cli

Cette page présente les principales différences entre OSC CLI et oapi-cli, afin de vous familiariser avec oapi-cli et vous aider à migrer vos scripts de l’ancienne à la nouvelle interface.

Support des API

OSC CLI vous permet d’envoyer des requêtes vers l’API OUTSCALE et vers la plupart de nos API AWS-compliant.

En revanche, oapi-cli supporte uniquement l’API OUTSCALE, car elle a vocation à offrir un support de première classe à cette dernière.

Par conséquent, si vous n’avez pas besoin d’utiliser les API AWS-compliant, vous pouvez migrer pleinement vers oapi-cli. Si vous avez besoin d’utiliser les API AWS-compliant, vous aurez toujours besoin d’OSC CLI. Les deux interfaces peuvent coexister sur la même machine.

Pour en savoir plus sur les API fournies par OUTSCALE, voir À propos des API.

Niveau de maturité

OSC CLI est l’interface en ligne de commande historique d’OUTSCALE. Elle est maintenant en mode maintenance, c’est-à-dire que les bugs sont toujours corrigés mais aucune nouvelle fonctionnalité n’y est ajoutée.

oapi-cli est la nouvelle interface en ligne de commande d’OUTSCALE. Elle apporte des fonctionnalités enrichies et une expérience utilisateur améliorée. oapi-cli a actuellement un niveau de maturité Incubating selon la classification de nos Projets open source.

Fonctionnalités exclusives à oapi-cli

Gestion des réponses en erreur

Avec oapi-cli, si vous recevez une réponse en erreur de l’API, l’objet JSON de l’erreur est proprement parsé et affiché dans votre terminal. Cela diffère d’OSC CLI, qui, en tant qu’outil écrit en Python, n’affiche qu’une trace d’appels (stacktrace) Python.

Dans les deux cas, la page Liste des erreurs de l’API OUTSCALE reste utile pour trouver des descriptions supplémentaires des erreurs.

Autocomplétion Bash

oapi-cli offre une fonctionnalité d’autocomplétion Bash. Pour en savoir plus, voir le README sur GitHub.

Système de variables

oapi-cli offre un système de pseudo-variables qui vous permet d’enchaîner plusieurs commandes tout en utilisant dynamiquement des valeurs reçues en réponses. Pour en savoir plus, voir le README sur GitHub.

Différences syntaxiques entre OSC CLI et oapi-cli

Vue d’ensemble

Les syntaxes par défaut des deux interfaces sont similaires : migrer d’une interface à l’autre ne nécessite pas de réécritures complexes. Dans la plupart des cas, la réécriture d’une commande OSC CLI vers oapi-cli implique seulement de remplacer osc-cli api par oapi-cli au début de la commande :

$ osc-cli api ReadVolumes --Filters '{ "VolumeStates": ["in-use"] }'
$ oapi-cli ReadVolumes --Filters '{ "VolumeStates": ["in-use"] }'

oapi-cli propose également des façons alternatives de spécifier les valeurs des paramètres, en particulier pour les paramètres imbriqués, mais il s’agit d’une fonctionnalité entièrement facultive. Pour en savoir plus, voir Installer et configurer oapi-cli > Utiliser des syntaxes alternatives.

Les sections ci-dessous présentent les quelques différences concrètement notables, que vous devez avoir en tête lors d’une migration vers oapi-cli.

Ordre des options

Historiquement, les exemples OSC CLI de cette documentation ont placé les options d’authentification (telles que --profile) après le nom de l’appel, mais vous pouvez aussi les placer avant, séparément des paramètres de requête de l’appel (dans l’exemple ci-dessous, --Filters) :

$ osc-cli api ReadVolumes --profile "default" --Filters '{ "VolumeStates": ["in-use"] }'
$ osc-cli --profile "default" api ReadVolumes --Filters '{ "VolumeStates": ["in-use"] }'

Avec oapi-cli en revanche, vous devez placer les options d’authentification avant le nom de l’appel :

$ oapi-cli --profile "default" ReadVolumes --Filters '{ "VolumeStates": ["in-use"] }'

Booléens

Avec OSC CLI, les booléens doivent commencer par une lettre majuscule, dû au fait qu’OSC CLI soit un outil écrit en Python :

--DryRun True

Avec oapi-cli, les booléens ne sont pas sensibles à la casse :

--DryRun true

Chaînes de texte numériques

Avec OSC CLI, si vous voulez spécifier un nombre en tant que chaîne de texte et non en tant qu’entier (par exemple dans CreateNetPeering), vous devez l’entourer de deux paires de guillemets :

--AccepterOwnerId '"123456789012"'

Avec oapi-cli, les nombres en tant que chaînes sont correctement reconnus :

--AccepterOwnerId "123456789012"

Chaînes de texte JSON

Avec OSC CLI, si vous voulez spécifier des données JSON en tant que chaîne de texte (par exemple dans CreatePolicy), vous devez échapper ces données :

--Document '"{\"Statement\": [ {\"Effect\": \"Allow\", \"Action\": [\"*\"], \"Resource\": [\"*\"]} ]}"'

Avec oapi-cli, la bonne pratique est d’écrire vos données JSON dans un fichier et passer celui-ci avec l’argument --jsonstr-file :

--Document --jsonstr-file "policy.json"

Chaînes de texte de certificats

Avec OSC CLI, si vous voulez spécifier un certificat en tant que chaîne de texte (par exemple dans CreateCa), le manière recommandée est d’utiliser une substitution de commande Shell :

--CaPem="$(cat ca-certificate.pem)"

Avec oapi-cli, la bonne pratique est de passer le contenu du fichier de certificat en utilisant l’argument --file :

--CaPem --file "ca-certificate.pem"

Pages connexes

AWS™ et Amazon Web Services™ sont des marques de commerce d'Amazon Technologies, Inc. ou de ses affiliées aux États-Unis et/ou dans les autres pays.