Google PlusFacebookTwitter

Lister les conteneurs (buckets) Swift de tous les tenants

By on Fév 13, 2014 in OpenStack | 0 comments

Share On GoogleShare On FacebookShare On Twitter

DevOps, watching you !

Et oui, il faut bien les surveiller vos clients, non ? Ah non, pardon, je voulais dire : « les accompagner » !

Le sysadmin que vous êtes, se doit d’être en mesure de récupérer le plus rapidement possible la consommation (quelle qu’elle soit) d’un utilisateur.

Depuis quelques semaines, je joue avec Swift (OpenStack Object Storage). Dans l’ensemble j’arrive à faire ce que je veux mais (car il y a toujours un « mais ») récupérer de l’information sur d’autres utilisateurs que le sien n’est pas une mince affaire.

En effet, utiliser le client python-swiftclient pour lister ses propres conteneurs (buckets chez Amazon), ses propres fichiers, etc… c’est simple.

Résultat :

On voit très rapidement que le tenant (projet) goldyfruit-bidouilles possède deux conteneurs, le conteneur c001 contient quatre fichiers et ces quatre fichiers utilisent un espace de 25Ko.

Hélas, le client ci-dessus ne permet pas de lister les conteneurs du tenant de bob-leponge (et pourtant j’en ai vraiment envie). Je vous vois venir, vous allez essayer de remplacer la valeur de l’option –os-tenant-name, ça ne fonctionnera pas :mrgreen: !

Que l’API de Swift soit !

Comme tout élément de la plate-forme OpenStack, Swift possède une API plutôt bien faite et bien documentée. C’est donc cette API (entre autre) qui va nous permettre de récupérer les informations souhaitées.

Avant de jouer avec les API de Keystone et de Swift, il est nécessaire de s’assurer que le compte admin (ou celui de votre choix) soit bien présent dans le rôle ResellerAdmin.

Récupération des ID nécessaires :

Ajout du rôle ResellerAdmin à l’utilisateur admin :

Ou, vous pouvez directement utiliser les noms au lieu des ID (c’est un peu plus lisible) :

Une petite vérification de routine :

Résultat :

Désormais l’utilisateur admin fait partie du rôle ResellerAdmin, il reste une dernière chose à vérifier. Le rôle ResellerAdmin est-t’il bien celui utilisé par Swift ? Pour le vérifier il suffit de grepper le fichier de configuration Swif.

Résultat :

Tout est correctement configuré ? Non ? Try Again 😛

L’API qui chante (nul…)

Pour ceux qui n’ont pas compris la référence, allez faire un petit tour ici et pour ceux à qui je fais de la peine, désolé…

Trêve de plaisanteries, la récupération des informations va se dérouler en trois étapes :

  1. Récupérer un token Keystone
  2. Récupérer l’ID du tenant souhaité
  3. Récupérer la liste des conteneurs du tenant

Récupérer un token Keystone

Résultat :

Le token est normalement bien plus long, pour l’exemple je l’ai pas mal raccourci.

Récupérer l’ID du tenant souhaité

Résultat :

Il ne reste plus qu’à choisir l’ID en relation avec le nom du tenant que vous souhaitez analyser. Exemple, pour le tenant odile.deray, l’ID sera ffd9a89e084e441f97ff56b8341bbb2b

Récupérer la liste des conteneurs du tenant

Résultat :

Le résultat est significatif, le tenant odile.deray possède trois conteneurs (et pas n’importe lesquels ^^).

Feignant ? Ce script est pour toi !

Ce script permet de lister tous les conteneurs Swift de tous les tenants recensés dans Keystone. Il fournit les informations suivantes :

Utilisation :

Liens

The following two tabs change content below.

Gaëtan Trellu (goldyfruit)

Cloud Operations Lead chez Ormuco
Autodidacte en informatique, depuis 2005 je parcours l’écosystème Unix à la recherche de nouvelles connaissances et de nouvelles rencontres.

CC BY 4.0 Lister les conteneurs (buckets) Swift de tous les tenants par Gaëtan Trellu (goldyfruit) est sous Licence Creative Commons Internationale Attribution 4.0.