Return command_line and node_directory via the controller

This commit is contained in:
Julien Duponchelle committed 2016-05-12 10:39:50 +02:00
1 parent 885a870ae8
commit 5280644327
167 files changed
+5280 -33

No files matched your search

+1 -1
View File
@@ -105,7 +105,7 @@ class DockerVM(BaseNode):
"aux": self.aux,
"start_command": self.start_command,
"environment": self.environment,
"vm_directory": self.working_dir
"node_directory": self.working_dir
}
def _get_free_display_port(self):
+1 -1
View File
@@ -112,7 +112,7 @@ class Router(BaseNode):
router_info = {"name": self.name,
"node_id": self.id,
"vm_directory": os.path.join(self.project.module_working_directory(self.manager.module_name.lower())),
"node_directory": os.path.join(self.project.module_working_directory(self.manager.module_name.lower())),
"project_id": self.project.id,
"dynamips_id": self._dynamips_id,
"platform": self._platform,
+1 -1
View File
@@ -203,7 +203,7 @@ class IOUVM(BaseNode):
iou_vm_info = {"name": self.name,
"node_id": self.id,
"vm_directory": self.working_dir,
"node_directory": self.working_dir,
"console": self._console,
"project_id": self.project.id,
"path": self.path,
+6 -6
View File
@@ -496,9 +496,9 @@ class Project:
self._export_project_file(path, z, include_images)
else:
# We merge the data from all server in the same project-files directory
vm_directory = os.path.join(self._path, "servers", "vm")
if os.path.commonprefix([root, vm_directory]) == vm_directory:
z.write(path, os.path.relpath(path, vm_directory))
node_directory = os.path.join(self._path, "servers", "vm")
if os.path.commonprefix([root, node_directory]) == node_directory:
z.write(path, os.path.relpath(path, node_directory))
else:
z.write(path, os.path.relpath(path, self._path))
return z
@@ -590,14 +590,14 @@ class Project:
"docker": "DockerVM"
}
vm_directory = os.path.join(self.path, "servers", "vm", "project-files")
node_directory = os.path.join(self.path, "servers", "vm", "project-files")
vm_server_use = False
for module, vm_type in modules_to_vm.items():
module_directory = os.path.join(self.path, "project-files", module)
if os.path.exists(module_directory):
os.makedirs(vm_directory, exist_ok=True)
shutil.move(module_directory, os.path.join(vm_directory, module))
os.makedirs(node_directory, exist_ok=True)
shutil.move(module_directory, os.path.join(node_directory, module))
# Patch node to use the GNS3 VM
for node in topology["topology"]["nodes"]:
+1 -1
View File
@@ -1449,7 +1449,7 @@ class QemuVM(BaseNode):
answer = {
"project_id": self.project.id,
"node_id": self.id,
"vm_directory": self.working_dir
"node_directory": self.working_dir
}
# Qemu has a long list of options. The JSON schema is the single source of information
for field in QEMU_OBJECT_SCHEMA["required"]:
@@ -87,9 +87,9 @@ class VirtualBoxVM(BaseNode):
"ram": self.ram,
"use_any_adapter": self.use_any_adapter}
if self._linked_clone:
json["vm_directory"] = self.working_dir
json["node_directory"] = self.working_dir
else:
json["vm_directory"] = None
json["node_directory"] = None
return json
@asyncio.coroutine
+1 -1
View File
@@ -91,7 +91,7 @@ class VMwareVM(BaseNode):
"adapter_type": self.adapter_type,
"use_ubridge": self.use_ubridge,
"use_any_adapter": self.use_any_adapter,
"vm_directory": self.working_dir}
"node_directory": self.working_dir}
return json
@property
+1 -1
View File
@@ -109,7 +109,7 @@ class VPCSVM(BaseNode):
return {"name": self.name,
"node_id": self.id,
"vm_directory": self.working_dir,
"node_directory": self.working_dir,
"status": self.status,
"console": self._console,
"console_type": "telnet",
+9 -1
View File
@@ -47,6 +47,8 @@ class Node:
self._console = console
self._console_type = console_type
self._properties = properties
self._command_line = None
self._node_directory = None
@property
def id(self):
@@ -130,7 +132,11 @@ class Node:
for key, value in response.json.items():
if key == "console":
self._console = value
elif key in ["console_type", "name", "node_id", "project_id", "vm_directory", "command_line", "status"]:
elif key == "node_directory":
self._node_directory = value
elif key == "command_line":
self._command_line = value
elif key in ["console_type", "name", "node_id", "project_id", "status"]:
pass
else:
self._properties[key] = value
@@ -225,8 +231,10 @@ class Node:
"project_id": self._project.id,
"node_id": self._id,
"node_type": self._node_type,
"node_directory": self._node_directory,
"name": self._name,
"console": self._console,
"console_type": self._console_type,
"command_line": self._command_line,
"properties": self._properties
}
+2 -2
View File
@@ -229,13 +229,13 @@ DOCKER_OBJECT_SCHEMA = {
"type": ["string", "null"],
"minLength": 0,
},
"vm_directory": {
"node_directory": {
"decription": "Path to the VM working directory",
"type": "string"
}
},
"additionalProperties": False,
"required": ["node_id", "project_id", "image", "container_id", "adapters", "aux", "console", "console_type", "console_resolution", "start_command", "environment", "vm_directory"]
"required": ["node_id", "project_id", "image", "container_id", "adapters", "aux", "console", "console_type", "console_resolution", "start_command", "environment", "node_directory"]
}
+1 -1
View File
@@ -516,7 +516,7 @@ VM_OBJECT_SCHEMA = {
"maxLength": 36,
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"vm_directory": {
"node_directory": {
"decription": "Path to the vm working directory",
"type": "string"
},
+1 -1
View File
@@ -194,7 +194,7 @@ IOU_OBJECT_SCHEMA = {
"maxLength": 36,
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"vm_directory": {
"node_directory": {
"decription": "Path to the VM working directory",
"type": "string"
},
+8
View File
@@ -87,6 +87,14 @@ NODE_OBJECT_SCHEMA = {
"description": "Type of node",
"enum": ["docker", "dynamips", "vpcs", "virtualbox", "vmware", "iou", "qemu"]
},
"node_directory": {
"description": "Working directory of the node. Read only",
"type": ["null", "string"]
},
"command_line": {
"description": "Command line use to start the node",
"type": ["null", "string"]
},
"name": {
"description": "Node name",
"type": "string",
+2 -2
View File
@@ -470,7 +470,7 @@ QEMU_OBJECT_SCHEMA = {
"description": "QEMU boot priority",
"enum": ["c", "d", "n", "cn", "cd"]
},
"vm_directory": {
"node_directory": {
"decription": "Path to the VM working directory",
"type": "string"
},
@@ -602,7 +602,7 @@ QEMU_OBJECT_SCHEMA = {
"cpu_throttling",
"process_priority",
"options",
"vm_directory",
"node_directory",
"command_line"]
}
+2 -2
View File
@@ -177,7 +177,7 @@ VBOX_OBJECT_SCHEMA = {
"type": "string",
"minLength": 1,
},
"vm_directory": {
"node_directory": {
"decription": "Path to the VM working directory",
"type": ["string", "null"]
},
@@ -222,5 +222,5 @@ VBOX_OBJECT_SCHEMA = {
},
},
"additionalProperties": False,
"required": ["name", "node_id", "project_id", "vm_directory"]
"required": ["name", "node_id", "project_id", "node_directory"]
}
+1 -1
View File
@@ -158,7 +158,7 @@ VMWARE_OBJECT_SCHEMA = {
"maxLength": 36,
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"vm_directory": {
"node_directory": {
"decription": "Path to the VM working directory",
"type": ["string", "null"]
},
+1 -1
View File
@@ -104,7 +104,7 @@ VPCS_OBJECT_SCHEMA = {
"maxLength": 36,
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"vm_directory": {
"node_directory": {
"decription": "Path to the VM working directory",
"type": "string"
},