Hanmin Bang
Hanmin Bang

Reputation: 41

Artifactory Create Repository Rest API does not work

I have Artifactory pro license, and as the following pages provide, I called rest api.

https://www.jfrog.com/confluence/display/RTF/Artifactory+REST+API#ArtifactoryRESTAPI-CreateRepository

I have verified that all other APIs such as repository listing, account creation and listing works normally, but I have confirmed that the repository creation api does not work with 400 errors.

I wanted to see the error by changing the log level, but there was no information about why there was a 400 error at the trace log level.

Below are related logs:

2018-06-15 10:31:34,028 [http-nio-8081-exec-15] [TRACE] (o.a.a.d.r.DockerV2AuthenticationFilter:84) - DockerV2AuthenticationFilter path: /api/repositories/newrepo

2018-06-15 10:31:34,028 [http-nio-8081-exec-15] [DEBUG] (o.a.w.s.a.AuthenticationFilterUtils:105) - Entering ArtifactorySsoAuthenticationFilter.getRemoteUserName

2018-06-15 10:31:34,028 [http-nio-8081-exec-15] [DEBUG] (o.a.w.s.AccessFilter:299) - Cached key has been found for request: '/artifactory/api/repositories/newrepo' with method: 'PUT'

2018-06-15 10:31:34,028 [http-nio-8081-exec-15] [TRACE] (o.a.s.PasswordDecryptingManager:95) - Received authentication request for org.artifactory.security.props.auth.PropsAuthenticationToken@3dc5bccf: Principal: null; Credentials: [PROTECTED]; Authenticated: false; Details: org.springframework.security.web.authentication.WebAuthenticationDetails@b364: RemoteIpAddress: {IP}; SessionId: null; Not granted any authorities

2018-06-15 10:31:34,029 [http-nio-8081-exec-15] [DEBUG] (o.j.a.c.h.AccessHttpClient:109) - Executing : GET http://localhost:8040/access/api/v1/users/?cd=apiKey_shash%3DGprGDe&exactKeyMatch=false

2018-06-15 10:31:34,035 [http-nio-8081-exec-15] [DEBUG] (o.a.w.s.AccessFilter:305) - Header authentication org.artifactory.security.props.auth.PropsAuthenticationToken@c20ca8df: Principal: admin; Credentials: [PROTECTED]; Authenticated: true; Details: org.springframework.security.web.authentication.WebAuthenticationDetails@b364: RemoteIpAddress: {IP}; SessionId: null; Granted Authorities: admin, user found in cache.

2018-06-15 10:31:34,035 [http-nio-8081-exec-15] [DEBUG] (o.a.w.s.RepoFilter  :100) - Entering request PUT (10.191.128.129) /api/repositories/newrepo.

2018-06-15 10:31:34,038 [http-nio-8081-exec-15] [DEBUG] (o.a.w.s.RepoFilter  :188) - Exiting request PUT (10.191.128.129) /api/repositories/newrepo

Updated

  1. My Artifactory Version: 6.0.2
  2. Reponse Message from Artifactory:

    {
      "errors" : [ {
        "status" : 400,
        "message" : "No valid type of repository found.\n"
      } ]
    }
    
  3. Repository Create JSON Message*:

    {
        "key": "newrepo",
        "rclass: "local",
        "packageType": "docker",
        "dockerApiVersion": "V2",
        "includesPattern": "**/*",
        "excludesPattern": "",
        "repoLayoutRef": "simple-default",
        "description": "",
        "checksumPolicyType": "client-checksums",
        "blackedOut": false,
        "propertySets": ["artifactory"]
    }
    
    • The error in this block is on purpose, and the code highlighting finds it quite nicely, but when this post was originally made, highlighting was not available on SO.

Upvotes: 2

Views: 2921

Answers (2)

alext
alext

Reputation: 186

This error is (somehow) returned by Artifactory if the content-type header contains the charset, for example: Content-Type: application/json; charset=UTF-8 Try with simply Content-Type: application/json

Upvotes: 0

Ariel
Ariel

Reputation: 3506

In your JSON you are missing " after the rclass.

You wrote ' "rclass: ' and it should be ' "rclass": '

Once fixing this the command should work properly. Good luck :)

curl -iuadmin:password -X PUT http://localhost:8081/artifactory/api/repositories/newrepo -H "Content-type:application/vnd.org.jfrog.artifactory.repositories.LocalRepositoryConfiguration+json" -T repo_temp.json 
HTTP/1.1 100 Continue

HTTP/1.1 200 OK
Server: Artifactory/5.11.0
X-Artifactory-Id: bea9f3f68aa06e62:4db81752:1643a9cff9e:-8000
Content-Type: text/plain
Transfer-Encoding: chunked
Date: Tue, 26 Jun 2018 06:57:24 GMT

Successfully created repository 'newrepo' 

repo_temp.json:

{ 
"key": "newrepo", 
"rclass": "local", 
"packageType": "docker", 
"dockerApiVersion": "V2", 
"includesPattern": "**/*", 
"excludesPattern": "", 
"repoLayoutRef": "simple-default", 
"description": "", 
"checksumPolicyType": "client-checksums", 
"blackedOut": false, 
"propertySets": ["artifactory"] 
}

Upvotes: 1

Related Questions