【发布时间】:2015-03-24 15:28:17
【问题描述】:
我正在尝试使用 cm_api 9.0.0 从 Cloudera Manager 5.3.2 中删除主机
我试过了
api.get_cloudera_manager().hosts_decommission([host])
api.get_cluster("cluster").remove_host(host)
但 remove_host() 出错
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.6/site-packages/cm_api/endpoints/clusters.py", line 218, in remove_host
return self._delete("hosts/" + hostId, ApiHostRef, api_version=3)
File "/usr/lib/python2.6/site-packages/cm_api/endpoints/types.py", line 352, in _delete
api_version)
File "/usr/lib/python2.6/site-packages/cm_api/endpoints/types.py", line 380, in _call
api_version)
File "/usr/lib/python2.6/site-packages/cm_api/endpoints/types.py", line 139, in call
ret = method(path, params=params)
File "/usr/lib/python2.6/site-packages/cm_api/resource.py", line 124, in delete
return self.invoke("DELETE", relpath, params)
File "/usr/lib/python2.6/site-packages/cm_api/resource.py", line 63, in invoke
headers=headers)
File "/usr/lib/python2.6/site-packages/cm_api/http_client.py", line 161, in execute
raise self._exc_class(ex)
cm_api.api_client.ApiException: ip-10-0-8-187.ec2.internal still has roles assigned to it. (error 400)
从集群中删除主机的正确顺序是什么,或者 cm_api 中是否有一个命令可以执行此操作?
谢谢
【问题讨论】:
-
异常表示主机仍然分配有角色。看来您需要先删除分配给它的角色。
-
从 cloudera manager 中删除主机的顺序是什么,cm_api 中是否有任何全局命令?
-
我不确定确切的顺序是什么,但显然其中之一是从主机中删除角色,所以你想先这样做,然后从那里开始。
-
可能停用步骤未完成。尝试添加一个 .wait() 到它。
标签: python api automation cloudera cloudera-manager