Check for colon in project name. Fixes #2203

This commit is contained in:
grossmj 2023-03-19 18:26:26 +10:00
parent ceb8208002
commit f08ce9d3f1
2 changed files with 18 additions and 0 deletions

View File

@ -323,6 +323,9 @@ class DockerVM(BaseNode):
Creates the Docker container. Creates the Docker container.
""" """
if ":" in self.working_dir:
raise DockerError("Cannot create a Docker container with a project name containing a colon character (':')")
try: try:
image_infos = await self._get_image_information() image_infos = await self._get_image_information()
except DockerHttp404Error: except DockerHttp404Error:

View File

@ -222,6 +222,21 @@ async def test_create_with_extra_hosts(compute_project, manager):
assert vm._extra_hosts == extra_hosts assert vm._extra_hosts == extra_hosts
async def test_create_with_colon_in_project_name(compute_project, manager):
response = {
"Id": "e90e34656806",
"Warnings": []
}
with asyncio_patch("gns3server.compute.docker.Docker.list_images", return_value=[{"image": "ubuntu"}]):
with asyncio_patch("gns3server.compute.docker.Docker.query", return_value=response):
with patch("gns3server.compute.project.Project.node_working_directory", return_value="/tmp/test_:_/"):
vm = DockerVM("test", str(uuid.uuid4()), compute_project, manager, "ubuntu")
with pytest.raises(DockerError):
await vm.create()
async def test_create_with_extra_hosts_wrong_format(compute_project, manager): async def test_create_with_extra_hosts_wrong_format(compute_project, manager):
extra_hosts = "test" extra_hosts = "test"