2017-02-15 2 views
0

Ich bin in ein Problem laufen, wo ich nicht in der Lage bin eine der Anfragen erhalten ich auf dem Build-Domain-Objekt mache zurückzukehren, wenn AQL mitAQL Build Domain-Objekt nicht zurück Ergebnisse

Wenn ich Nehmen Sie die folgende curl:

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

erhalte ich eine Reihe von Ergebnissen:

{ 
    "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" 
} 

, damit ich weiß, dass es Builds in meinem Artifactory sind

jedoch, wenn ich die folgende curl machen, die ich glaube, werden möchten alle mit einem beliebigen Namen erstellt, erhalte ich keine Ergebnisse

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" 

kehrt:

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

Ich habe in der Lage zu bekommen Ergebnisse bei der Verwendung items.find() aber ich hatte kein Glück mit builds.find() Gibt es etwas, das ich vermisse?

Meine allgemeine Absicht ist eine Abfrage, die die neuesten Build-Informationen eines bestimmten Builds basierend auf dem Namen zurückgibt, aber ich konnte nicht einmal die einfachste Abfrage für das Builddomänenobjekt erhalten.

Vielen Dank im Voraus für die Hilfe.

+2

Ich habe versucht, Ihre Abfrage (Ändern der API-Schlüssel und MyArtifactoryServer) und es funktionierte wie ein Charme. Können Sie die request.log in Artifactory überprüfen und die Protokollzeile für diese Abfrage freigeben? Verwenden Sie auch einen Admin-Benutzer? Wenn nicht, kannst du einen Admin-Benutzer ausprobieren und sehen, ob sich etwas ändert? – Ariel

Antwort

0

Die Antwort könnte mit Berechtigungen zusammenhängen. Wenn der von Ihnen verwendete API-Schlüssel einem Nicht-Admin-Benutzer gehört, kann er die Situation erklären.
Das Abfragen der Build-Domäne mithilfe von AQL erfordert Administratorberechtigungen, während die API "Alle Builds" nur einen privilegierten Benutzer erfordert.

+0

Ich fand, dass die obige Abfrage nur funktionieren würde, wenn der Benutzer "Admin" -Rechte hätte. Ich kann verstehen, dass die Abfrage einen privilegierten Benutzer erfordern würde, bin aber überrascht, dass es die höchste Berechtigungsstufe erfordert. Könnte das richtig sein? Gibt es eine andere Möglichkeit, die gleichen Informationen zu erhalten, ohne eine so mächtige Privilegieneinstellung zu benötigen? –

+0

In Bezug auf die AQL-Abfrage ist dies die aktuelle Situation. Einige der AQL-Domänen sind nur für den Administratorzugriff beschränkt. –