2017-02-15 2 views
0

Je suis en cours d'exécution dans un problème où je ne suis pas en mesure d'obtenir l'une des questions que je fais sur l'objet de domaine de construction revenir lors de l'utilisation AQLAQL build objet de domaine ne retourne pas

Quand je faire la boucle suivante:

curl -X GET -H "X-JFrog-Art-Api: myArtifactroyKey" -H "Cache-Control: no-cache" "https://MyArtifactoryServer/artifactory/api/build/" 

Je reçois un ensemble de résultats:

{ 
    "builds": [ 
    { 
     "uri": "/someBuild", 
     "lastStarted": "2017-02-15T22:02:49.066+0000" 
    }, 
    { 
     "uri": "/someOtherBuild", 
     "lastStarted": "2017-02-15T21:45:09.590+0000" 
    }, 
     "uri": "/someThirdBuild", 
     "lastStarted": "2017-02-15T21:17:38.794+0000" 
    } 
], 
    "uri": "https://myArtifactoryServer/artifactory/api/build" 
} 

donc je sais qu'il ya des builds dans mon Artifactory

cependant, quand je fais la boucle suivante, que je crois être demander à tous builds avec un nom, je reçois aucun résultat

curl -X POST -H "X-JFrog-Art-Api: myArtifactroyKey" -H "Content-Type: application/x-www-form-urlencoded" -H "Cache-Control: no-cache" -d 'builds.find({"name": {"$match":"*"}})' "https://MyArtifactoryServer/artifactory/api/search/aql" 

retours:

{ 
    "results": [], 
    "range": { 
    "start_pos": 0, 
    "end_pos": 0, 
    "total": 0 
    } 
} 

J'ai pu obtenir résultats lors de l'utilisation items.find() mais n'ont pas eu de chance avec builds.find() Y at-il quelque chose qui me manque? Mon intention générale est d'avoir une requête qui retourne les informations de construction les plus récentes d'une construction spécifique en fonction du nom, mais je n'ai pas réussi à obtenir le plus simple de Query par rapport à l'objet de domaine de construction pour fonctionner.

Merci d'avance pour l'aide.

+2

J'ai essayé d'exécuter votre requête (en changeant la clé API et MyArtifactoryServer) et cela a fonctionné comme un charme. Pouvez-vous vérifier le request.log dans Artifactory et partager la ligne de journal liée à cette requête? En outre, utilisez-vous un utilisateur admin? Sinon, pouvez-vous essayer un administrateur et voir si quelque chose change? – Ariel

Répondre

0

La réponse peut être liée aux autorisations. Si la clé API que vous utilisez appartient à un utilisateur non administrateur, elle peut expliquer la situation.
L'interrogation du domaine de construction à l'aide d'AQL nécessite des autorisations d'administration, tandis que l'API "Toutes les constructions" requiert uniquement un utilisateur privilégié.

+0

J'ai trouvé que la requête ci-dessus ne fonctionnerait que si l'utilisateur avait des privilèges "Admin". Je peux comprendre que la requête nécessiterait un utilisateur privilégié, mais je suis surpris qu'il nécessite le plus haut niveau de privilège. Est-ce que ça pourrait être vrai? Existe-t-il un moyen différent d'obtenir la même information sans avoir besoin d'un tel paramètre de privilège? –

+0

En ce qui concerne la requête AQL, c'est la situation actuelle. Certains domaines AQL sont limités à l'accès administrateur. –