api Titor from Peje
Rédigé par Paulo
Aucun commentaire
Classé dans : Divers
-
Obtenir des infos sur les socles/repos/paquets (l'api retourne du json)
# liste des socles (param -sO- pour retour dans le terminal) wget --no-proxy -qO- peje/socle [{"id":1,"name":"socle2012_0.66"},{"id":2,"name":"socle2007_2.20"}, {"id":3,"name":"socle2007_2.23"},{"id":4,"name":"socle2012_0.66_redhat"}, {"id":5,"name":"socle2007_3.34_redhat-Tel"},{"id":6,"name":"socle2016_0.14"}, {"id":7,"name":"socle2012_1.28"},{"id":8,"name":"socle2007_3.34"}, ] wget --no-proxy -qO- peje/socle|jq [ { "id": 1, "name": "socle2012_0.66" }, { "id": 2, "name": "socle2007_2.20" }, { "id": 3, "name": "socle2007_2.23" }, { "id": 4, "name": "socle2012_0.66_redhat" }, ... } ] # pareil avec un retour à la ligne wget --no-proxy -qO- peje/socle&&echo '' # info sur un socle wget --no-proxy -qO- peje/socle/{id}&&echo # liste de tous les repository (inbitable...) wget --no-proxy -qO- peje/repo&&echo ... # liste des repository d'un socle (mieux...) wget --no-proxy -qO- peje/socle/6/repo/6&&echo # on peut, obtenir des infos sur le depot id=11 ci-dessus wget --no-proxy -qO- peje/repo/11&&echo # liste des paquets (trop gros, ne focntionne pas !) wget --no-proxy -qO- peje/package # infos sur le paquet {id} wget --no-proxy -qO- peje/package/6 # liste des paquets d'un socle (retour volumineux...) wget --no-proxy -qO- peje/socle/6/package&&echo ... # provide de tous les paquets(trop volumineux, ne fonctionne pas...) wget --no-proxy -qO- peje/provide # provide du paquet {id} wget --no-proxy -qO- peje/provide/6 # idem pour les require wget --no-proxy -qO- peje/require/6&&echo # liste des fichiers (trop volumineux, ne fonctionne pas...) wget --no-proxy -qO- peje/file # liste du file {id} wget --no-proxy -qO- peje/file/11&&echo {"id":11,"name":"\/etc\/libipmiconsole.conf","id_package":2} # liste des fichiers du paquet id=2 (cf ci-dessus) wget --no-proxy -qO- peje/package/2/file
-
Formatage du résultat avec la commande "jq"
source 1 : http://blog.librato.com/posts/jq-json
source 2 : https://stedolan.github.io/jq/tutorial/
# derniers erratas wget --no-proxy -qO- peje/socle/13/latesterrata wget --no-proxy -qO- peje/package/2|jq "id": 2, "package_type": "rpm", "name": "freeipmi", "arch": "x86_64", "version_epoch": "0", "version_ver": "1.2.1", "version_rel": "6.el6_5", "checksum_type": "sha", "checksum_pkgid": "YES", "checksum": "222a5f0b341d608ef6080a6dd0c029489ab7cc4b", "summary": "IPMI remote console and system management software", "description": "The FreeIPMI project provides \"Remote-Console\" (out-of-band) and\n\"System Management Software\" (in-band) based on Intelligent\nPlatform Management Interface specification.", "packager": "CentOS BuildSystem <http://bugs.centos.org>", "url": "http://www.gnu.org/software/freeipmi/", "time_file": "1392816995", "time_build": "1386578290", "size_package": "1947736", "size_installed": "10082894", "size_archive": "10106304", "location_href": "freeipmi-1.2.1-6.el6_5.x86_64.rpm", "format_license": "GPLv3+", "format_vendor": "CentOS", "format_group": "Applications/System", "format_buildhost": "c6b8.bsys.dev.centos.org", "format_sourcerpm": "freeipmi-1.2.1-6.el6_5.src.rpm", "format_header_range_start": "1376", "format_header_range_end": "33116", "id_repo": 1 }
Avec cette commande, on peut acceder à chaque element du tableau et/ou à chaque clé de un/tous les elements du tableau :
# obtenir la longueur, le type, ect... wget --no-proxy -qO- peje/socle/6/package|jq length wget --no-proxy -qO- peje/socle/6/package|jq 'type, length' # recup du name, url et rp du dernier errata d'un socle wget --no-proxy -qO- peje/socle/13/latesterrata|jq '.name, .url, .rp_ver' # uniquement les clés wget --no-proxy -qO- peje/socle/6/package|jq '.[]|keys' # uniquement le 10ème element du retour JSon wget --no-proxy -qO- peje/socle/6/package|jq '.[10]' # uniquement la valeur de la clé 'description' du paquet ci-dessus wget --no-proxy -qO- peje/socle/6/package|jq '.[10].description' # idem pour une url wget --no-proxy -qO- peje/socle/6/package|jq '.[10].url' # idem pour les url de tous les paquets wget --no-proxy -qO- peje/socle/6/package|jq '.[].url' # obtenir les noms de tous les rpm du socle 2016 (id=6) wget --no-proxy -qO- peje/socle/6/package|jq '.[].name' # filtre sur 'socle2016_0.14' wget --no-proxy -qO- peje/socle| jq '.[]|select(.name=="socle2016_0.14")' # en vrac, mais trop puissant : #retourne uniquement le contenu de name et url wget --no-proxy -qO- peje/repo/127/package|jq '.[] | .name , .url' # idem mais sur seule ligne wget --no-proxy -qO- peje/repo/127/package|jq -r '.[] | .name + " --> " + .url' # idem mais plus classe... wget --no-proxy -qO- peje/repo/127/package|jq -r '.[] | "\(.name) --> \(.url)"' # retourne un format json avec une clé message qui contient la valeur de .name wget --no-proxy -qO- peje/repo/127/package|jq '.[] | {message: .name}' # pareil mais retourne la cle message retourne un tableau wget --no-proxy -qO- peje/repo/127/package|jq '.[] | {message: [.name, .url]}' # retourne 2 clés : message + adresse wget --no-proxy -qO- peje/repo/127/package|jq '.[] | {message: .name , adresse: .url}'
Ps : fonctionne egalement sur om
wget --no-proxy -qO- om/api/core/|jq wget --no-proxy -qO- om/api/core/platform/|jq wget --no-proxy -qO- om/api/core/platform/sclp|jq wget --no-proxy -qO- om/core/platform/sclp/1.0.0/|jq wget --no-proxy -qO- om/api/core/platform/sclp/1.0.0/sclpgsa001|jq