Merge branch 'dev' into gns-110

This commit is contained in:
Jerry Seutter committed 2014-10-28 10:39:03 -06:00
commit 7830bf8b1a
9 files changed
+51 -37

No files matched your search

+9 -9
View File
@@ -681,17 +681,17 @@ class VM(object):
@IModule.route("dynamips.vm.idlepcs")
def vm_idlepcs(self, request):
"""
Get idle-pc proposals.
Get Idle-PC proposals.
Mandatory request parameters:
- id (vm identifier)
Optional request parameters:
- compute (returns previously compute idle-pc values if False)
- compute (returns previously compute Idle-PC values if False)
Response parameters:
- id (vm identifier)
- idlepcs (idle-pc values in an array)
- idlepcs (Idle-PC values in an array)
:param request: JSON request
"""
@@ -709,7 +709,7 @@ class VM(object):
if "compute" in request and request["compute"] == False:
idlepcs = router.show_idle_pc_prop()
else:
# reset the current idle-pc value before calculating a new one
# reset the current Idle-PC value before calculating a new one
router.idlepc = "0x0"
idlepcs = router.get_idle_pc_prop()
except DynamipsError as e:
@@ -723,7 +723,7 @@ class VM(object):
@IModule.route("dynamips.vm.auto_idlepc")
def vm_auto_idlepc(self, request):
"""
Auto idle-pc calculation.
Auto Idle-PC calculation.
Mandatory request parameters:
- id (vm identifier)
@@ -731,7 +731,7 @@ class VM(object):
Response parameters:
- id (vm identifier)
- logs (logs for the calculation)
- idlepc (idle-pc value)
- idlepc (Idle-PC value)
:param request: JSON request
"""
@@ -746,7 +746,7 @@ class VM(object):
return
try:
router.idlepc = "0x0" # reset the current idle-pc value before calculating a new one
router.idlepc = "0x0" # reset the current Idle-PC value before calculating a new one
was_auto_started = False
if router.get_status() != "running":
router.start()
@@ -757,11 +757,11 @@ class VM(object):
validated_idlepc = "0x0"
idlepcs = router.get_idle_pc_prop()
if not idlepcs:
logs.append("No idle-pc values found")
logs.append("No Idle-PC values found")
for idlepc in idlepcs:
router.idlepc = idlepc.split()[0]
logs.append("Trying idle-pc value {}".format(router.idlepc))
logs.append("Trying Idle-PC value {}".format(router.idlepc))
start_time = time.time()
initial_cpu_usage = router.get_cpu_usage()
logs.append("Initial CPU usage = {}%".format(initial_cpu_usage))
+2 -2
View File
@@ -804,10 +804,10 @@ class Router(object):
# router is not running
raise DynamipsError("router {name} is not running".format(name=self._name))
log.info("router {name} [id={id}] has started calculating idle-pc values".format(name=self._name, id=self._id))
log.info("router {name} [id={id}] has started calculating Idle-PC values".format(name=self._name, id=self._id))
begin = time.time()
idlepcs = self._hypervisor.send("vm get_idle_pc_prop {} 0".format(self._name))
log.info("router {name} [id={id}] has finished calculating idle-pc values after {time:.4f} seconds".format(name=self._name,
log.info("router {name} [id={id}] has finished calculating Idle-PC values after {time:.4f} seconds".format(name=self._name,
id=self._id,
time=time.time() - begin))
return idlepcs
+4 -4
View File
@@ -204,7 +204,7 @@ VM_UPDATE_SCHEMA = {
"type": "integer"
},
"idlepc": {
"description": "idle-pc value",
"description": "Idle-PC value",
"type": "string",
"pattern": "^(0x[0-9a-fA-F]+)?$"
},
@@ -475,7 +475,7 @@ VM_EXPORT_CONFIG_SCHEMA = {
VM_IDLEPCS_SCHEMA = {
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Request validation to calculate or show idle-pcs for VM instance",
"description": "Request validation to calculate or show Idle-PCs for VM instance",
"type": "object",
"properties": {
"id": {
@@ -483,7 +483,7 @@ VM_IDLEPCS_SCHEMA = {
"type": "integer"
},
"compute": {
"description": "indicates to compute new idle-pc values",
"description": "indicates to compute new Idle-PC values",
"type": "boolean"
},
},
@@ -493,7 +493,7 @@ VM_IDLEPCS_SCHEMA = {
VM_AUTO_IDLEPC_SCHEMA = {
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Request an auto idle-pc calculation for this VM instance",
"description": "Request an auto Idle-PC calculation for this VM instance",
"type": "object",
"properties": {
"id": {
+2
View File
@@ -224,6 +224,8 @@ class TelnetServer(Console):
buf = self._read_cur(bufsize, socket.MSG_DONTWAIT)
except BlockingIOError:
return None
except ConnectionResetError:
buf = b''
if not buf:
self._disconnect(fileno)
+4
View File
@@ -628,6 +628,10 @@ class Qemu(IModule):
paths.append(os.path.join(os.environ["PROGRAMFILES(X86)"], "qemu"))
if "PROGRAMFILES" in os.environ and os.path.exists(os.environ["PROGRAMFILES"]):
paths.append(os.path.join(os.environ["PROGRAMFILES"], "qemu"))
elif sys.platform.startswith("darwin"):
# add specific locations on Mac OS X regardless of what's in $PATH
paths.append("/usr/local/bin")
paths.append("/opt/local/bin")
for path in paths:
try:
for f in os.listdir(path):
@@ -54,7 +54,7 @@ class VirtualBoxController(object):
self._console = 0
self._adapters = []
self._headless = False
self._enable_console = True
self._enable_console = False
self._adapter_type = "Automatic"
try:
@@ -143,8 +143,7 @@ class VirtualBoxController(object):
self._get_session()
self._set_network_options()
if self._enable_console:
self._set_console_options()
self._set_console_options()
progress = self._launch_vm_process()
log.info("VM is starting with {}% completed".format(progress.percent))
@@ -217,9 +216,8 @@ class VirtualBoxController(object):
if self._adapters[adapter_id] is None:
continue
self._disable_adapter(adapter_id, disable=True)
if self._enable_console:
serial_port = self._session.machine.getSerialPort(0)
serial_port.enabled = False
serial_port = self._session.machine.getSerialPort(0)
serial_port.enabled = False
self._session.machine.saveSettings()
self._unlock_machine()
except Exception as e: