1
0
mirror of https://github.com/GNS3/gns3-server synced 2024-11-28 11:18:11 +00:00

Merge branch '1.5' into 2.0

This commit is contained in:
Julien Duponchelle 2016-06-06 14:28:21 +02:00
commit 61ac8763f2
No known key found for this signature in database
GPG Key ID: CE8B29639E07F5E8
3 changed files with 28 additions and 19 deletions

View File

@ -206,7 +206,7 @@ class DockerVM(BaseNode):
# 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"]
@ -216,7 +216,7 @@ class DockerVM(BaseNode):
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

View File

@ -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

View File

@ -95,7 +95,7 @@ def test_create(loop, project, manager):
"CapAdd": ["ALL"], "CapAdd": ["ALL"],
"Binds": [ "Binds": [
"{}:/gns3:ro".format(get_resource("compute/docker/resources")), "{}:/gns3:ro".format(get_resource("compute/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
}, },
@ -133,7 +133,7 @@ def test_create_with_tag(loop, project, manager):
"CapAdd": ["ALL"], "CapAdd": ["ALL"],
"Binds": [ "Binds": [
"{}:/gns3:ro".format(get_resource("compute/docker/resources")), "{}:/gns3:ro".format(get_resource("compute/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
}, },
@ -174,7 +174,7 @@ def test_create_vnc(loop, project, manager):
"CapAdd": ["ALL"], "CapAdd": ["ALL"],
"Binds": [ "Binds": [
"{}:/gns3:ro".format(get_resource("compute/docker/resources")), "{}:/gns3:ro".format(get_resource("compute/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
@ -217,7 +217,7 @@ def test_create_start_cmd(loop, project, manager):
"CapAdd": ["ALL"], "CapAdd": ["ALL"],
"Binds": [ "Binds": [
"{}:/gns3:ro".format(get_resource("compute/docker/resources")), "{}:/gns3:ro".format(get_resource("compute/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
}, },
@ -256,7 +256,7 @@ def test_create_environment(loop, project, manager):
"CapAdd": ["ALL"], "CapAdd": ["ALL"],
"Binds": [ "Binds": [
"{}:/gns3:ro".format(get_resource("compute/docker/resources")), "{}:/gns3:ro".format(get_resource("compute/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("compute/docker/resources")), "{}:/gns3:ro".format(get_resource("compute/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("compute/docker/resources")), "{}:/gns3:ro".format(get_resource("compute/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("compute/docker/resources")), "{}:/gns3:ro".format(get_resource("compute/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("compute/docker/resources")), "{}:/gns3:ro".format(get_resource("compute/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"]