使用 git 作为存储时,无法通过 http 调用删除 Nifi 注册表中的流
Cannot delete a flow in Nifi registry via http call when using git as storage
使用时 DELETE
/buckets/{bucketId}/flows/{flowId}
,
它无法删除版本为 0 的流。
例如,无法通过上述 http 调用删除类似以下流程的内容。
{
"bucketIdentifier": "6a0f624c-3163-496e-bb60-9ca4fe287654",
"bucketName": "flow_bucket",
"createdTimestamp": 1550243254914,
"description": "A Versioned Flow from pyApi",
"identifier": "d3738331-78b3-4dda-ab6b-a2975db762ff",
"link": {
"href": "buckets/6a0f624c-3163-496e-bb60-9ca4fe287654/flows/d3738331-78b3-4dda-ab6b-a2975db762ff",
"params": {
"rel": "self"
}
},
"modifiedTimestamp": 1550243254914,
"name": "test flow by pyApi",
"permissions": {
"canDelete": true,
"canRead": true,
"canWrite": true
},
"type": "Flow",
"versionCount": 0
}
有没有其他方法可以删除这样的流量?
这个流程是由
nipyapi.versioning.save_flow_ver()
给出了不同的 flow_name
。
尽管它因 409
而失败,但它仍会在 Nifi 注册表中创建一个流。
存储空间为 git(具体为 gitlab)
似乎不太可能.. NiFi-Registry 中的流程从版本 1 开始。如果是这样,那就是一个错误。不过,您应该能够直接从文件系统中删除它。默认情况下,流量保持在 {NIFI_INSTALLATION_FOLDER}/flow_storage/{BUCKET_ID}/
下。只需删除名称为该流 ID 的目录即可。这应该可以解决它。
编辑:
忘了说你还需要编辑默认放在{NIFI_INSTALLATION_FOLDER}/database
的db文件(H2)
我同意 Ben 的观点,您遇到的很可能是错误而不是预期的行为。除了手动编辑 H2 元数据数据库的建议之外,您还可以尝试添加流快照版本(版本化流可以是任何版本),为该流保存版本 1,然后删除整个流。即:
POST /buckets/6a0f624c-3163-496e-bb60-9ca4fe287654/flows/d3738331-78b3-4dda-ab6b-a2975db762ff/versions/
DELETE /buckets/6a0f624c-3163-496e-bb60-9ca4fe287654/flows/d3738331-78b3-4dda-ab6b-a2975db762ff
我将打开一个 Apache Jira 问题来跟踪修复此错误。
使用时 DELETE
/buckets/{bucketId}/flows/{flowId}
,
它无法删除版本为 0 的流。
例如,无法通过上述 http 调用删除类似以下流程的内容。
{
"bucketIdentifier": "6a0f624c-3163-496e-bb60-9ca4fe287654",
"bucketName": "flow_bucket",
"createdTimestamp": 1550243254914,
"description": "A Versioned Flow from pyApi",
"identifier": "d3738331-78b3-4dda-ab6b-a2975db762ff",
"link": {
"href": "buckets/6a0f624c-3163-496e-bb60-9ca4fe287654/flows/d3738331-78b3-4dda-ab6b-a2975db762ff",
"params": {
"rel": "self"
}
},
"modifiedTimestamp": 1550243254914,
"name": "test flow by pyApi",
"permissions": {
"canDelete": true,
"canRead": true,
"canWrite": true
},
"type": "Flow",
"versionCount": 0
}
有没有其他方法可以删除这样的流量?
这个流程是由
nipyapi.versioning.save_flow_ver()
给出了不同的 flow_name
。
尽管它因 409
而失败,但它仍会在 Nifi 注册表中创建一个流。
存储空间为 git(具体为 gitlab)
似乎不太可能.. NiFi-Registry 中的流程从版本 1 开始。如果是这样,那就是一个错误。不过,您应该能够直接从文件系统中删除它。默认情况下,流量保持在 {NIFI_INSTALLATION_FOLDER}/flow_storage/{BUCKET_ID}/
下。只需删除名称为该流 ID 的目录即可。这应该可以解决它。
编辑:
忘了说你还需要编辑默认放在{NIFI_INSTALLATION_FOLDER}/database
我同意 Ben 的观点,您遇到的很可能是错误而不是预期的行为。除了手动编辑 H2 元数据数据库的建议之外,您还可以尝试添加流快照版本(版本化流可以是任何版本),为该流保存版本 1,然后删除整个流。即:
POST /buckets/6a0f624c-3163-496e-bb60-9ca4fe287654/flows/d3738331-78b3-4dda-ab6b-a2975db762ff/versions/
DELETE /buckets/6a0f624c-3163-496e-bb60-9ca4fe287654/flows/d3738331-78b3-4dda-ab6b-a2975db762ff
我将打开一个 Apache Jira 问题来跟踪修复此错误。