【问题标题】:Setting a specific ID for priviledges in Nexus API在 Nexus API 中为权限设置特定 ID
【发布时间】:2016-02-22 10:34:13
【问题描述】:

我正在致力于在 Nexus OSS 中自动创建私有存储库。 现在,我正在考虑使用curl 来这样做。 在这里,我要创建

  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?

  1. 将这些生成的权限(带有随机 ID)添加到角色?

【问题讨论】:

  • 无法设置这些ID,您需要在创建权限后解析结果并在下一次调用中使用生成的ID。
  • @rseddon 感谢您的回复。我想我会停止偷懒,写一个小脚本来解析它们。

标签: curl nexus


【解决方案1】:

已经有一段时间了,但我决定用 python 编写一个脚本。 我是 python 的菜鸟,所以我很感激任何 cmets。

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>]

【讨论】:

    猜你喜欢
    • 2016-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-01
    • 1970-01-01
    • 2022-12-13
    • 2021-08-18
    • 2019-06-28
    相关资源
    最近更新 更多