ECS:错误 40019 (http:409): 命名空间不为空。命名空间不能删除,因为它不为空
Summary: 本知识库文章介绍了用户无法删除命名空间的原因。
Symptoms
从 UI 中删除命名空间时,会显示以下警报:Error 40019 (http: 409): Namespace not empty. Namespace cannot be deleted as its not empty. Please make sure all users and buckets are deleted from the namespace.
Cause
用户使用旧版对象用户,未使用身份和访问管理 (IAM),并且未删除与命名空间关联的所有用户和存储区。
场景 2
用户正在将 IAM 实体与传统对象用户一起使用,并且未删除与命名空间关联的所有 IAM 实体(IAM 用户、角色、组、策略)。
Resolution
场景 1
1: 在命令提示符下使用命令 svc_bucket list | grep <namespace name> 要查看没有存储区与此命名空间关联。
2: 在命令提示符下使用命令 svc_user list | grep <namespace name> 可以看到,仍然没有用户与此命名空间关联。
3: 从命名空间中删除所有传统对象用户和存储区后,继续在 UI 上将其删除。
场景 2
1: 在命令提示符下使用命令 svc_bucket list | grep <namespace name> 要查看没有存储区与此命名空间关联。
2: 在命令提示符下使用命令 svc_user list | grep <namespace name> 可以看到,仍然没有用户与此命名空间关联。
3: 在日志中搜索以下错误,以查看用户是否正在使用 IAM 实体:# svc_log -f "Error 40019" -sr all -n all -sf -start "1 day ago"
169.254.1.1 ecsportalsvc.log.20221209-123634.gz 2022-12-27 09:32:59,779 [play-thread-11] ERROR Logger.java (line 608) Error 40019 (http: 409): Namespace not empty. Namespace cannot be deleted as its not empty. Please make sure all users and buckets are deleted from the namespace com.emc.ecs.client.exceptions.ServiceErrorException: Error 40019 (http: 409): Namespace not empty. Namespace cannot be deleted as its not empty. Please make sure all users and buckets are deleted from the namespace
# svc_log -f "namespace1" -sr objcontrolsvc -n all -sf | grep ERROR -A5 -B5
169.254.1.1 objcontrolsvc.log 2022-12-27T12:33:18,628 [qtp483722291-1018448-d4714582:17dcfd4591d:76a8b:1b1] ERROR ResourceClient.java (line 331) request id d4714582:17dcfd4591d:76a8b:1bc, command type REQUEST_NAMESPACE_DELETE failed with error code ERROR_NAMESPACE_NOT_EMPTY and message 'Namespace schemaType NAMESPACE_KEY namespaceId namespace1 has iam entities associated with it'
4: 发现此错误后,用户将使用具有此命名空间的 IAM 实体。用户必须使用 UI 上的 root 用户删除与此命名空间关联的任何 IAM 实体(用户、角色、组和用户定义的策略)。
5: 从命名空间中删除所有传统对象用户、存储区和 IAM 实体后,继续在 UI 上将其删除。