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.
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
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]