2017-04-19 2 views
0

Je dois écrire un script shell, qui peut récupérer des artefacts obsolètes de JFROG en utilisant l'API REST et les supprimer.Supprimer des artefacts après la recherche d'anciens artefacts dans JFROG

-je obtenir une liste d'objets par commande

curl -u user:password "http://artifactory:8081/artifactory/api/search/dates?dateFields=created&from=1467052559000&to=1497588559000&repos=current-repo" 

et obtenir une sortie comme

"results" : [ { 
    "uri" : "http://artifactory:8081/artifactory/api/storage/current-repo/first artifact/artfoulder folder/file.tzs", 
    "created" : "2017-04-10T11:33:50.190+03:00" 
    }, { 
    "uri" : "http://artifactory:8081/artifactory/api/storage/current-repo/second artifact/artfoulder folder/file2.tzs", 
    "created" : "2017-04-10T11:33:50.140+03:00" 
    } ] 

et d'autres objets

Après avoir obtenu avec succès la liste de ces objets, j'ai besoin pour les supprimer.

Mes questions:

  1. Est-il un moyen simple de le faire? Ou j'ai besoin d'analyser les chaînes de sortie avec shell, mettre des liens dans le tableau et supprimer par la commande API REST un par un?
  2. Il y un moyen d'obtenir seulement le premier niveau des dossiers d'artefacts, qui sont obsolètes et les supprimer (premier artefact et second artefact dans mon cas)

Merci beaucoup à l'avance!

Répondre

0

Pourquoi ne pas utiliser un script est déjà prêt spécifiquement pour que: https://github.com/JFrogDev/artifactory-scripts/blob/master/cleanup/aqlCleanup.groovy

Tout ce que vous devez faire est de changer la requête AQL pour rechercher des objets sur la gamme de date précise et est-il. Cela va automatiquement nettoyer.

+0

Pourriez-vous me dire comment utiliser le script groovy dans Jenkins? Ça devrait être un job de Jenkins dans mon cas. –

+0

Dans Jenkins, vous pouvez exécuter un travail en ligne de commande à l'intérieur de la construction générique, et exécuter simplement le script groovy. Vous aurez besoin d'avoir groovy installé sur la machine Jenkins. Pour exécuter un travail groovy, exécutez la commande suivante: "groovy fileNeme.groovy" Veuillez noter que le fichier groovy que j'ai mentionné est défini avec une condition AQL spécifique. S'il vous plaît assurez-vous de modifier cette condition à vos propres besoins. – Ariel

+0

Merci pour votre réponse. Je vais faire attention à cela, bien sûr. Pourriez-vous me dire, comment puis-je le faire trouver seulement les répertoires de premier niveau (l'information est ci-dessus)? Et est-ce possible de le faire avec une commande curl? –