2015-11-20 36 views
1

设置权限的一个特定的ID,我会自动工作创造的Nexus OSS私有仓库。 现在,我正在考虑使用curl这样做。 在这里,我想创建中的Nexus API

  1. 2个私有仓库(快照,版本)
  2. 权限的每个仓库(创建,读取,更新,删除)
  3. 角色添加权限的用
  4. 用户角色集

我目前在向角色添加权限时遇到问题,因为生成的权限ID看起来像一些随机ID。

curl -s --user <user>:<password> -X POST -H 'Accept: application/json' -H 'Content-Type: application/json'\ 
-d '{"data":{"name":"<repo-name>-release","description":"<repo-name>-release","type":"target","repositoryTargetId":"any","repositoryId":"<repo-name>-release","repositoryGroupId":"","method":["create","read","update","delete"]}}'\ 
https://<my-nexus-server>/nexus/service/local/privileges_target 

它返回

{"data":[{"id":"19de4d5c87506","resourceURI":"https://<my-nexus-server>/nexus/service/local/privileges_target/19de4d5c87506","name":"<repo-name>-release - (create)","description":"<repo-name>-release","type":"target","userManaged":true,"properties":[{"key":"repositoryTargetId","value":"any"},{"key":"method","value":"create,read"},{"key":"repositoryId","value":"<repo-name>-release"},{"key":"repositoryGroupId","value":""}]},{"id":"19de4d638eafd","resourceURI":"https://<my-nexus-server>/nexus/service/local/privileges_target/19de4d638eafd","name":"123-release - (read)","description":"<repo-name>-release","type":"target","userManaged":true,"properties":[{"key":"repositoryTargetId","value":"any"},{"key":"method","value":"read"},{"key":"repositoryId","value":"<repo-name>-release"},{"key":"repositoryGroupId","value":""}]},{"id":"19de4d6c197e0","resourceURI":"https://<my-nexus-server>/nexus/service/local/privileges_target/19de4d6c197e0","name":"<repo-name>-release - (update)","description":"<repo-name>-release","type":"target","userManaged":true,"properties":[{"key":"repositoryTargetId","value":"any"},{"key":"method","value":"update,read"},{"key":"repositoryId","value":"<repo-name>-release"},{"key":"repositoryGroupId","value":""}]},{"id":"19de4d756fde5","resourceURI":"https://<my-nexus-server>/nexus/service/local/privileges_target/19de4d756fde5","name":"<repo-name>-release - (delete)","description":"<repo-name>-release","type":"target","userManaged":true,"properties":[{"key":"repositoryTargetId","value":"any"},{"key":"method","value":"delete,read"},{"key":"repositoryId","value":"<repo-name>-release"},{"key":"repositoryGroupId","value":""}]}]} 

我想这些生成的权限的添加到角色。

有没有办法来

  1. 产生通过REST API权限的时候设置ID?

  • 添加这些生成的权限的(具有随机ID)的一个作用?
  • +0

    无法设置这些ID,您需要在创建权限后解析结果并在下次调用中使用生成的ID。 – rseddon

    +0

    @rseddon谢谢你的回复。我想我会停止懒惰,并写一点脚本来解析它们。 –

    回答

    0

    这已经有一段时间,但我还是决定用Python语言编写的脚本。 我是Python的noob,所以我很欣赏任何评论。

    import requests 
    import json 
    
    from requests.auth import HTTPBasicAuth 
    
    # Server Settings 
    baseurl=<my nexus> 
    auth=HTTPBasicAuth(<user>,<password>) 
    
    # need a dictionary for name to id coordination 
    dict = {} 
    url = "/".join([baseurl,"service/local/privileges"]) 
    r = requests.get(url,auth=auth,headers=headers).json() 
    for priv in r["data"]: 
        dict[priv["name"]]=priv["id"] 
    
    # print the privilege ID 
    print dict[<privilege you want>] 
    
    相关问题