在Artifactory REST API中调用moveItem会导致锁定错误

2024-09-27 00:13:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个Python脚本来自动将包从一个柯南远程设备移动到另一个柯南远程设备。两个遥控器都托管在同一个Artifactory Pro服务器中。为了有效地执行此操作,我想使用Artifactory REST API - moveItem。因为这是一个Python脚本,所以我使用module rtpy来实现它

该脚本尝试移动数千个包,但大多数情况下效果良好。在<;10%的情况下,虽然我得到了一个错误的API。这是一个严重的问题,因为二进制文件丢失了——它们已经从源代码中删除,但没有添加到目标远程文件中。这只会对一堆测试工件造成损害,我希望在生产环境中没有其他人会遇到这个问题

rtpy错误如下(删除了特定的包和远程名称):

Exception while moving artifact [PACKAGE] ([PACKAGE-REF])
Exception was The json output for the error was malformed (Not a standard Artifactory REST API error json), set the "raw_response" setting to True in your settings dictionary to get a raw requests.Response() object for debugging!, requests.Response.text : {
  "messages" : [ {
    "level" : "ERROR",
    "message" : "Failed to move from src=[SOURCE-PACKAGE] to target=[TARGET_PACKAGE]: Lock on LockEntryId [FILE-FROM-PACKAGE-ON-TARGET-REMOTE] not acquired in 120 seconds. Lock info: org.artifactory.storage.fs.lock.provider.JVMLockWrapper@71934dd7."
  } ]
}

多个moveItem命令是否可能会导致这些问题?我能做些什么来避免这种情况?有没有其他人尝试过类似的方法


Tags: 文件to脚本restapijsonpackage远程

热门问题