mirror of
https://github.com/GNS3/gns3-server
synced 2024-11-28 11:18:11 +00:00
parent
469187c584
commit
e335015520
@ -202,7 +202,7 @@ class DockerVM(BaseVM):
|
|||||||
|
|
||||||
# We mount our own etc/network
|
# We mount our own etc/network
|
||||||
network_config = self._create_network_config()
|
network_config = self._create_network_config()
|
||||||
binds.append("{}:/etc/network:rw".format(network_config))
|
binds.append("{}:/gns3volumes/etc/network:rw".format(network_config))
|
||||||
|
|
||||||
self._volumes = ["/etc/network"]
|
self._volumes = ["/etc/network"]
|
||||||
|
|
||||||
@ -212,7 +212,7 @@ class DockerVM(BaseVM):
|
|||||||
for volume in volumes.keys():
|
for volume in volumes.keys():
|
||||||
source = os.path.join(self.working_dir, os.path.relpath(volume, "/"))
|
source = os.path.join(self.working_dir, os.path.relpath(volume, "/"))
|
||||||
os.makedirs(source, exist_ok=True)
|
os.makedirs(source, exist_ok=True)
|
||||||
binds.append("{}:{}".format(source, volume))
|
binds.append("{}:/gns3volumes{}".format(source, volume))
|
||||||
self._volumes.append(volume)
|
self._volumes.append(volume)
|
||||||
|
|
||||||
return binds
|
return binds
|
||||||
|
@ -28,9 +28,18 @@ if [ ! -d /tmp/gns3/bin ]; then
|
|||||||
/gns3/bin/busybox --install -s /tmp/gns3/bin
|
/gns3/bin/busybox --install -s /tmp/gns3/bin
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Restore file permission
|
# Restore file permission and mount volumes
|
||||||
for i in $(echo "$GNS3_VOLUMES" | tr ":" "\n")
|
for i in $(echo "$GNS3_VOLUMES" | tr ":" "\n")
|
||||||
do
|
do
|
||||||
|
# Copy original files if destination is empty (first start)
|
||||||
|
if ! [ "$(ls -A /gns3volumes$i)" ]; then
|
||||||
|
for file in $(ls -A "$i")
|
||||||
|
do
|
||||||
|
cp -a "$i/$file" "/gns3volumes$i/$file"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
mount --bind "/gns3volumes$i" "$i"
|
||||||
if [ -f "$i/.gns3_perms" ]
|
if [ -f "$i/.gns3_perms" ]
|
||||||
then
|
then
|
||||||
while IFS=: read PERMS OWNER GROUP FILE
|
while IFS=: read PERMS OWNER GROUP FILE
|
||||||
|
@ -94,7 +94,7 @@ def test_create(loop, project, manager):
|
|||||||
"CapAdd": ["ALL"],
|
"CapAdd": ["ALL"],
|
||||||
"Binds": [
|
"Binds": [
|
||||||
"{}:/gns3:ro".format(get_resource("modules/docker/resources")),
|
"{}:/gns3:ro".format(get_resource("modules/docker/resources")),
|
||||||
"{}:/etc/network:rw".format(os.path.join(vm.working_dir, "etc", "network"))
|
"{}:/gns3volumes/etc/network:rw".format(os.path.join(vm.working_dir, "etc", "network"))
|
||||||
],
|
],
|
||||||
"Privileged": True
|
"Privileged": True
|
||||||
},
|
},
|
||||||
@ -132,7 +132,7 @@ def test_create_with_tag(loop, project, manager):
|
|||||||
"CapAdd": ["ALL"],
|
"CapAdd": ["ALL"],
|
||||||
"Binds": [
|
"Binds": [
|
||||||
"{}:/gns3:ro".format(get_resource("modules/docker/resources")),
|
"{}:/gns3:ro".format(get_resource("modules/docker/resources")),
|
||||||
"{}:/etc/network:rw".format(os.path.join(vm.working_dir, "etc", "network"))
|
"{}:/gns3volumes/etc/network:rw".format(os.path.join(vm.working_dir, "etc", "network"))
|
||||||
],
|
],
|
||||||
"Privileged": True
|
"Privileged": True
|
||||||
},
|
},
|
||||||
@ -173,7 +173,7 @@ def test_create_vnc(loop, project, manager):
|
|||||||
"CapAdd": ["ALL"],
|
"CapAdd": ["ALL"],
|
||||||
"Binds": [
|
"Binds": [
|
||||||
"{}:/gns3:ro".format(get_resource("modules/docker/resources")),
|
"{}:/gns3:ro".format(get_resource("modules/docker/resources")),
|
||||||
"{}:/etc/network:rw".format(os.path.join(vm.working_dir, "etc", "network")),
|
"{}:/gns3volumes/etc/network:rw".format(os.path.join(vm.working_dir, "etc", "network")),
|
||||||
'/tmp/.X11-unix/:/tmp/.X11-unix/'
|
'/tmp/.X11-unix/:/tmp/.X11-unix/'
|
||||||
],
|
],
|
||||||
"Privileged": True
|
"Privileged": True
|
||||||
@ -216,7 +216,7 @@ def test_create_start_cmd(loop, project, manager):
|
|||||||
"CapAdd": ["ALL"],
|
"CapAdd": ["ALL"],
|
||||||
"Binds": [
|
"Binds": [
|
||||||
"{}:/gns3:ro".format(get_resource("modules/docker/resources")),
|
"{}:/gns3:ro".format(get_resource("modules/docker/resources")),
|
||||||
"{}:/etc/network:rw".format(os.path.join(vm.working_dir, "etc", "network"))
|
"{}:/gns3volumes/etc/network:rw".format(os.path.join(vm.working_dir, "etc", "network"))
|
||||||
],
|
],
|
||||||
"Privileged": True
|
"Privileged": True
|
||||||
},
|
},
|
||||||
@ -255,7 +255,7 @@ def test_create_environment(loop, project, manager):
|
|||||||
"CapAdd": ["ALL"],
|
"CapAdd": ["ALL"],
|
||||||
"Binds": [
|
"Binds": [
|
||||||
"{}:/gns3:ro".format(get_resource("modules/docker/resources")),
|
"{}:/gns3:ro".format(get_resource("modules/docker/resources")),
|
||||||
"{}:/etc/network:rw".format(os.path.join(vm.working_dir, "etc", "network"))
|
"{}:/gns3volumes/etc/network:rw".format(os.path.join(vm.working_dir, "etc", "network"))
|
||||||
],
|
],
|
||||||
"Privileged": True
|
"Privileged": True
|
||||||
},
|
},
|
||||||
@ -310,7 +310,7 @@ def test_create_image_not_available(loop, project, manager):
|
|||||||
"CapAdd": ["ALL"],
|
"CapAdd": ["ALL"],
|
||||||
"Binds": [
|
"Binds": [
|
||||||
"{}:/gns3:ro".format(get_resource("modules/docker/resources")),
|
"{}:/gns3:ro".format(get_resource("modules/docker/resources")),
|
||||||
"{}:/etc/network:rw".format(os.path.join(vm.working_dir, "etc", "network"))
|
"{}:/gns3volumes/etc/network:rw".format(os.path.join(vm.working_dir, "etc", "network"))
|
||||||
],
|
],
|
||||||
"Privileged": True
|
"Privileged": True
|
||||||
},
|
},
|
||||||
@ -530,7 +530,7 @@ def test_update(loop, vm):
|
|||||||
"CapAdd": ["ALL"],
|
"CapAdd": ["ALL"],
|
||||||
"Binds": [
|
"Binds": [
|
||||||
"{}:/gns3:ro".format(get_resource("modules/docker/resources")),
|
"{}:/gns3:ro".format(get_resource("modules/docker/resources")),
|
||||||
"{}:/etc/network:rw".format(os.path.join(vm.working_dir, "etc", "network"))
|
"{}:/gns3volumes/etc/network:rw".format(os.path.join(vm.working_dir, "etc", "network"))
|
||||||
],
|
],
|
||||||
"Privileged": True
|
"Privileged": True
|
||||||
},
|
},
|
||||||
@ -598,7 +598,7 @@ def test_update_running(loop, vm):
|
|||||||
"CapAdd": ["ALL"],
|
"CapAdd": ["ALL"],
|
||||||
"Binds": [
|
"Binds": [
|
||||||
"{}:/gns3:ro".format(get_resource("modules/docker/resources")),
|
"{}:/gns3:ro".format(get_resource("modules/docker/resources")),
|
||||||
"{}:/etc/network:rw".format(os.path.join(vm.working_dir, "etc", "network"))
|
"{}:/gns3volumes/etc/network:rw".format(os.path.join(vm.working_dir, "etc", "network"))
|
||||||
],
|
],
|
||||||
"Privileged": True
|
"Privileged": True
|
||||||
},
|
},
|
||||||
@ -875,8 +875,8 @@ def test_mount_binds(vm, tmpdir):
|
|||||||
dst = os.path.join(vm.working_dir, "test/experimental")
|
dst = os.path.join(vm.working_dir, "test/experimental")
|
||||||
assert vm._mount_binds(image_infos) == [
|
assert vm._mount_binds(image_infos) == [
|
||||||
"{}:/gns3:ro".format(get_resource("modules/docker/resources")),
|
"{}:/gns3:ro".format(get_resource("modules/docker/resources")),
|
||||||
"{}:/etc/network:rw".format(os.path.join(vm.working_dir, "etc", "network")),
|
"{}:/gns3volumes/etc/network:rw".format(os.path.join(vm.working_dir, "etc", "network")),
|
||||||
"{}:{}".format(dst, "/test/experimental")
|
"{}:/gns3volumes{}".format(dst, "/test/experimental")
|
||||||
]
|
]
|
||||||
|
|
||||||
assert vm._volumes == ["/etc/network", "/test/experimental"]
|
assert vm._volumes == ["/etc/network", "/test/experimental"]
|
||||||
|
Loading…
Reference in New Issue
Block a user