Hi Ramesh!
I tried following code to create a repository but it is giving 404 error. I
am passing json as entity in my post request. But I am failed to create a
repository

def createReposity() {
    val httpclient = new DefaultHttpClient()
    val httpPost = new
HttpPost("http://localhost:6080/service/public/api/repository";)
    httpPost.setHeader("content-type", "application/json")
    httpPost.setHeader("Accept", "application/json")
    httpPost.addHeader(BasicScheme.authenticate(
      new UsernamePasswordCredentials(username, password),
      "UTF-8", false))
    val reqEntity = new StringEntity(getJson)
    httpPost.setEntity(reqEntity)
    val response = httpclient.execute(httpPost)
    println(response.getStatusLine().getStatusCode())
  }
def getJson(): String = {
    var json = "{\"name\": \"hadoopd_hdfs\",\"description\": \"hdfs
repository using curl\","
    json += "\"repositoryType\": \"hdfs\",\"config\": \"{"
    json += "\"username\": \"admin\","
    json += "\"password\": \"admin\","
    json += "\"fs.default.name\": \"hdfs://localhost:9000\","
    json += "\"hadoop.security.authorization\": \"true\","
    json += "\"hadoop.security.authentication\": \"simple\","
    json += "\"hadoop.security.auth_to_local\": \"\","
    json += "\"dfs.datanode.kerberos.principal\": \"\","
    json += "\"dfs.namenode.kerberos.principal\": \"\","
    json += "\"dfs.secondary.namenode.kerberos.principal\": \"\","
    json += "\"commonNameForCertificate\": \"\"}\","
    json += "\"isActive\": true}"
    json
  }




On Sun, Aug 9, 2015 at 2:28 AM, Hafiz Mujadid <[email protected]>
wrote:

> thanks ramesh :)
>
> On Sun, Aug 9, 2015 at 2:11 AM, Ramesh Mani <[email protected]> wrote:
>
>> Hafiz,
>>
>> There is no code sample for it now. To create one , you need to go
>> through the code base for Ranger Public Api.
>>
>> Check it in git hub for ranger source public api
>> https://github.com/apache/incubator-ranger/blob/master/security-admin/src/main/java/org/apache/ranger/rest/PublicAPIs.java
>>
>>
>> Idea is what ever the responses you got in your GET operation, you need
>> to map it to the POST operation’s object with new values for repo and do
>> the post call. ( you will be doing a of bunch of set operation on the
>> object and do POST in your java )
>>
>> Hope this gives you the idea.
>>
>> Thanks,
>> Ramesh
>>
>>
>>
>> From: Hafiz Mujadid <[email protected]>
>> Reply-To: "[email protected]" <
>> [email protected]>
>> Date: Saturday, August 8, 2015 at 1:27 PM
>> To: "[email protected]" <[email protected]>
>> Subject: Re: issue with rest api
>>
>> Hi Ramesh
>>
>> thanks for your response. I got the solution. here is my working code
>>
>>
>> val httpclient = new DefaultHttpClient()
>>     val httpget = new HttpGet(repo_url + "/" + id)
>>     httpget.addHeader(BasicScheme.authenticate(
>>       new UsernamePasswordCredentials(username, password),
>>       "UTF-8", false))
>>     httpget.setHeader("Accept", "application/json")
>>     val response = httpclient.execute(httpget)
>>     EntityUtils.toString(response.getEntity())
>>
>>
>> But I am failing in how to create a repository using rest api. is there
>> any java code example?
>>
>> thanks
>>
>> On Sun, Aug 9, 2015 at 12:40 AM, Ramesh Mani <[email protected]>
>> wrote:
>>
>>> Hafiz
>>>
>>> Please try using the following if it fetches.
>>>
>>> "http://localhost:6080/service/public/api/repository
>>> <http://localhost:6080/service/public/api/repository/1>?type=hdfs”
>>>
>>> For a quicker check you can use curl calls.
>>>
>>> curl -i -X GET --header "Accept:application/json" -H "Content-Type:
>>> application/json" -u admin:admin
>>> http://localhost:6080/service/public/api/repository?type=hdfs
>>>
>>> Also let me know the name of  service/ repository which you created and
>>> which you are querying to download.
>>>
>>> Try this and let me know.
>>>
>>> Regards,
>>> Ramesh
>>>
>>> From: Hafiz Mujadid <[email protected]>
>>> Reply-To: "[email protected]" <
>>> [email protected]>
>>> Date: Saturday, August 8, 2015 at 10:18 AM
>>> To: "[email protected]" <[email protected]
>>> >
>>> Subject: issue with rest api
>>>
>>> Hi
>>>
>>> I am trying to use rest api's in my java/scala code
>>>
>>> here is my code
>>>  val httpclient = new DefaultHttpClient()
>>>     val auth = new AuthScope(host, AuthScope.ANY_PORT)
>>>     val credentials = new UsernamePasswordCredentials("admin", "admin")
>>>     httpclient.getCredentialsProvider()
>>>       .setCredentials(auth, credentials)
>>>     val httpget = new HttpGet("
>>> http://localhost:6080/service/public/api/repository/1";)
>>>     httpget.setHeader("Accept", "application/xml")
>>>     val response = httpclient.execute(httpget)
>>>     val entity = response.getEntity
>>>     if (entity != null) {
>>>       val in = new BufferedReader(new
>>> InputStreamReader(entity.getContent()))
>>>       var line = in.readLine()
>>>       var response = new StringBuffer()
>>>       while (line != null) {
>>>         response.append(line + "/n")
>>>         line = in.readLine()
>>>       }
>>>       in.close()
>>>       println(response.toString())
>>>     }
>>>
>>>
>>> But it is not returning repository details
>>>
>>>
>>>
>>> any suggestion how can i use rest services in my java application?
>>>
>>> Thanks
>>>
>>
>>
>>
>> --
>> Regards: HAFIZ MUJADID
>>
>
>
>
> --
> Regards: HAFIZ MUJADID
>



-- 
Regards: HAFIZ MUJADID

Reply via email to