mirror of
https://github.com/ceph/ceph
synced 2025-02-21 01:47:25 +00:00
mgr/rook: implement remove_daemons()
Signed-off-by: Sage Weil <sage@redhat.com>
This commit is contained in:
parent
56cfeb68a4
commit
bdbeeed680
@ -434,6 +434,13 @@ class RookOrchestrator(MgrModule, orchestrator.Orchestrator):
|
||||
mgr=self
|
||||
)
|
||||
|
||||
def remove_daemons(self, names, force):
|
||||
return write_completion(
|
||||
lambda: self.rook_cluster.remove_pods(names),
|
||||
"Removing daemons {}".format(','.join(names)),
|
||||
mgr=self
|
||||
)
|
||||
|
||||
def create_osds(self, drive_groups):
|
||||
# type: (List[DriveGroupSpec]) -> RookCompletion
|
||||
""" Creates OSDs from a drive group specification.
|
||||
|
@ -30,7 +30,7 @@ except ImportError:
|
||||
|
||||
try:
|
||||
from kubernetes.client.rest import ApiException
|
||||
from kubernetes.client import V1ListMeta, CoreV1Api, V1Pod
|
||||
from kubernetes.client import V1ListMeta, CoreV1Api, V1Pod, V1DeleteOptions
|
||||
from kubernetes import watch
|
||||
except ImportError:
|
||||
class ApiException(Exception): # type: ignore
|
||||
@ -349,6 +349,23 @@ class RookCluster(object):
|
||||
|
||||
return pods_summary
|
||||
|
||||
def remove_pods(self, names):
|
||||
pods = [i for i in self.rook_pods.items]
|
||||
num = 0
|
||||
for p in pods:
|
||||
d = p.to_dict()
|
||||
daemon_type = d['metadata']['labels']['app'].replace('rook-ceph-','')
|
||||
daemon_id = d['metadata']['labels']['ceph_daemon_id']
|
||||
name = daemon_type + '.' + daemon_id
|
||||
if name in names:
|
||||
self.k8s.delete_namespaced_pod(
|
||||
d['metadata']['name'],
|
||||
self.rook_env.namespace,
|
||||
body=V1DeleteOptions()
|
||||
)
|
||||
num += 1
|
||||
return "Removed %d pods" % num
|
||||
|
||||
def get_node_names(self):
|
||||
return [i.metadata.name for i in self.nodes.items]
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user