volume: do not strip trailing characters from names (#3073)

Only remove `:ro` or `:rw` suffixes in their entirety; do not
strip arbitrary `r` / `o` / `w` / `:` characters individually.

Signed-off-by: Loïc Leyendecker <loic.leyendecker@gmail.com>
This commit is contained in:
loicleyendecker 2022-12-02 19:48:04 +00:00 коммит произвёл GitHub
Родитель 8590eaad3c
Коммит 82cf559b5a
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
2 изменённых файлов: 6 добавлений и 4 удалений

Просмотреть файл

@ -1147,8 +1147,10 @@ def _host_volume_from_bind(bind):
bits = rest.split(':', 1)
if len(bits) == 1 or bits[1] in ('ro', 'rw'):
return drive + bits[0]
elif bits[1].endswith(':ro') or bits[1].endswith(':rw'):
return bits[1][:-3]
else:
return bits[1].rstrip(':ro').rstrip(':rw')
return bits[1]
ExecResult = namedtuple('ExecResult', 'exit_code,output')

Просмотреть файл

@ -103,7 +103,7 @@ class ContainerCollectionTest(unittest.TestCase):
volumes=[
'/home/user1/:/mnt/vol2',
'/var/www:/mnt/vol1:ro',
'volumename:/mnt/vol3',
'volumename:/mnt/vol3r',
'/volumewithnohostpath',
'/anothervolumewithnohostpath:ro',
'C:\\windows\\path:D:\\hello\\world:rw'
@ -123,7 +123,7 @@ class ContainerCollectionTest(unittest.TestCase):
'Binds': [
'/home/user1/:/mnt/vol2',
'/var/www:/mnt/vol1:ro',
'volumename:/mnt/vol3',
'volumename:/mnt/vol3r',
'/volumewithnohostpath',
'/anothervolumewithnohostpath:ro',
'C:\\windows\\path:D:\\hello\\world:rw'
@ -198,7 +198,7 @@ class ContainerCollectionTest(unittest.TestCase):
volumes=[
'/mnt/vol2',
'/mnt/vol1',
'/mnt/vol3',
'/mnt/vol3r',
'/volumewithnohostpath',
'/anothervolumewithnohostpath',
'D:\\hello\\world'