return mounts
-def get_container(fsid, daemon_type, daemon_id, privileged=False):
- podman_args = []
+def get_container(fsid, daemon_type, daemon_id, privileged=False,
+ podman_args=None):
+ if not podman_args:
+ podman_args = []
if daemon_type == 'osd' or privileged:
podman_args += ['--privileged']
return CephContainer(
return [
podman_path,
'run',
- '-it',
'--net=host',
- '--env', 'LANG=C',
] + self.podman_args + envs + vols + [
'--entrypoint', cmd[0],
self.image
return [
podman_path,
'exec',
- '--env', 'LANG=C',
- '-it',
+ ] + self.podman_args + [
self.cname,
] + cmd
mounts[pathify(args.config)] = '/etc/ceph/ceph.conf:z'
if args.keyring:
mounts[pathify(args.keyring)] = '/etc/ceph/ceph.keyring:z'
+ podman_args = ['--privileged']
+ if args.command:
+ command = args.command
+ else:
+ command = ['bash']
+ podman_args += [
+ '-it',
+ '--env', 'LANG=C',
+ ]
c = CephContainer(
image=args.image,
entrypoint='doesnotmatter',
args=[],
- podman_args=['--privileged'],
+ podman_args=podman_args,
volume_mounts=mounts)
- return subprocess.call(c.shell_cmd(args.command))
+ return subprocess.call(c.shell_cmd(command))
##################################
def command_enter():
(daemon_type, daemon_id) = args.name.split('.')
- c = get_container(args.fsid, daemon_type, daemon_id)
- return subprocess.call(c.exec_cmd(args.command))
+ podman_args = []
+ if args.command:
+ command = args.command
+ else:
+ command = ['bash']
+ podman_args += [
+ '-it',
+ '--env', 'LANG=C',
+ ]
+ c = get_container(args.fsid, daemon_type, daemon_id,
+ podman_args=podman_args)
+ return subprocess.call(c.exec_cmd(command))
##################################
help='ceph.keyring to pass through to the container')
parser_shell.add_argument(
'command', nargs='*',
- default=['bash'],
help='command (optional)')
parser_enter = subparsers.add_parser(
help='daemon name (type.id)')
parser_enter.add_argument(
'command', nargs='*',
- default=['bash'],
help='command')
parser_ceph_volume = subparsers.add_parser(