]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
cephadm/box: minor fixes 49627/head
authorPere Diaz Bou <pdiazbou@redhat.com>
Thu, 19 Jan 2023 09:12:09 +0000 (10:12 +0100)
committerPere Diaz Bou <pdiazbou@redhat.com>
Thu, 19 Jan 2023 09:12:09 +0000 (10:12 +0100)
Signed-off-by: Pere Diaz Bou <pdiazbou@redhat.com>
doc/dev/cephadm/developing-cephadm.rst
src/cephadm/box/DockerfilePodman
src/cephadm/box/box.py
src/cephadm/box/osd.py

index d4da40665205dcad3830c37b848c405bee2ccc75..fe6abf4ee31842c97f8052d4718c944ab24b8f28 100644 (file)
@@ -289,8 +289,9 @@ of the cluster.
 After bootstraping the cluster you can go inside the seed box in which you'll be
 able to run Cephadm commands::
 
-  ./box.py -v cluster sh
+  ./box.py -v cluster bash
   [root@8d52a7860245] cephadm --help
+  [root@8d52a7860245] cephadm shell
   ...
 
 
index 440267bc6ec582e577a51c7cbec29f4c41d302f9..115c3c730facdbb1fb5cee49f3db1c124905c3f4 100644 (file)
@@ -10,6 +10,7 @@ FROM fedora:34
 
 ENV CEPHADM_PATH=/usr/local/sbin/cephadm
 RUN ln -s /ceph/src/cephadm/cephadm.py $CEPHADM_PATH # NOTE: assume path of ceph volume
+
 # Don't include container-selinux and remove
 # directories used by yum that are just taking
 # up space.
index b485bc16aabe104854faa9d1f1c673d073f68582..db2f24233512a96c689ed81f6acb5be59b71e3e7 100755 (executable)
@@ -52,7 +52,7 @@ def remove_ceph_image_tar():
 
 
 def cleanup_box() -> None:
-    osd.cleanup()
+    osd.cleanup_osds()
     remove_ceph_image_tar()
 
 
@@ -118,7 +118,7 @@ def dashboard_setup():
 
 class Cluster(Target):
     _help = 'Manage docker cephadm boxes'
-    actions = ['bootstrap', 'start', 'down', 'list', 'sh', 'setup', 'cleanup']
+    actions = ['bootstrap', 'start', 'down', 'list', 'bash', 'setup', 'cleanup']
 
     def set_args(self):
         self.parser.add_argument(
@@ -366,11 +366,12 @@ class Cluster(Target):
             print(f'{name} \t{ip} \t{hostname}')
 
     @ensure_outside_container
-    def sh(self):
+    def bash(self):
         # we need verbose to see the prompt after running shell command
         Config.set('verbose', True)
         print('Seed bash')
-        run_shell_command(f'{engine_compose()} -f {Config.get("docker_yaml")} exec {get_seed_name()} bash')
+        engine = get_container_engine()
+        engine.run(f'exec -it {engine.seed_name} bash')
 
 
 targets = {
index b57af42434ac38167a7214296fe358c28665b371..827a4de36c0f80229ffb3535cac05d9415bd1d76 100644 (file)
@@ -1,6 +1,7 @@
 import json
 import os
 import time
+import re
 from typing import Dict
 
 from util import (
@@ -23,10 +24,9 @@ def remove_loop_img() -> None:
     if os.path.exists(loop_image):
         os.remove(loop_image)
 
-def create_loopback_devices(osds: int) -> None:
-
+def create_loopback_devices(osds: int) -> Dict[int, Dict[str, str]]:
     assert osds
-    cleanup()
+    cleanup_osds()
     osd_devs = dict()
 
     for i in range(osds):
@@ -84,7 +84,7 @@ def deploy_osd(data: str, hostname: str) -> bool:
     return 'Created osd(s)' in out
 
 
-def cleanup() -> None:
+def cleanup_osds() -> None:
     loop_img_dir = Config.get('loop_img_dir')
     osd_devs = load_osd_devices()
     for osd in osd_devs.values():
@@ -125,8 +125,9 @@ class Osd(Target):
     - deploy: Deploy an osd given a block device
     - create_loop: Create needed loopback devices and block devices in logical volumes
     for a number of osds.
+    - destroy: Remove all osds and the underlying loopback devices.
     """
-    actions = ['deploy', 'create_loop']
+    actions = ['deploy', 'create_loop', 'destroy']
 
     def set_args(self):
         self.parser.add_argument('action', choices=Osd.actions)
@@ -150,3 +151,7 @@ class Osd(Target):
         osds = Config.get('osds')
         create_loopback_devices(int(osds))
         print('Successfully created loopback devices')
+
+    @ensure_outside_container
+    def destroy(self):
+        cleanup_osds()