Merge branch 'master' into 2.0

This commit is contained in:
Julien Duponchelle 2016-07-13 17:47:00 +02:00
commit c0abe0edfd
No known key found for this signature in database
GPG Key ID: CE8B29639E07F5E8
4 changed files with 22 additions and 5 deletions

View File

@ -1,5 +1,14 @@
# Change Log
## 1.5.1 07/07/2016
* Increase the number of interface for docker
* Add the method in the bad request answer
* Fix a rare crash in IOU
* Fix a crash when docker is used but not installed
* Backport Docker node hot linking
* Allows hot-linking for Docker containers. Ref #267.
## 1.5.0 27/06/2016
* Fix import of project with no disk

View File

@ -252,7 +252,7 @@ class VMwareHandler:
vmware_manager = VMware.instance()
vm = vmware_manager.get_node(request.match_info["node_id"], project_id=request.match_info["project_id"])
nio_type = request.json["type"]
if nio_type not in ("nio_udp", "nio_vmnet", "nio_nat"):
if nio_type not in ("nio_udp", "nio_vmnet", "nio_nat", "nio_tap"):
raise HTTPConflict(text="NIO of type {} is not supported".format(nio_type))
nio = vmware_manager.create_nio(request.json)
yield from vm.adapter_add_nio_binding(int(request.match_info["adapter_number"]), nio)

View File

@ -140,6 +140,7 @@ def is_interface_up(interface):
# TODO: Windows & OSX support
return True
def _check_windows_service(service_name):
import pywintypes
@ -156,6 +157,7 @@ def _check_windows_service(service_name):
raise aiohttp.web.HTTPInternalServerError(text="Could not check if the {} service is running: {}".format(service_name, e.strerror))
return True
def interfaces():
"""
Gets the network interfaces on this server.
@ -185,8 +187,10 @@ def interfaces():
"type": interface_type})
else:
try:
service_installed = True
if not _check_windows_service("npf") and not _check_windows_service("npcap"):
raise aiohttp.web.HTTPInternalServerError("The NPF or Npcap is not installed or running")
service_installed = False
else:
results = get_windows_interfaces()
except ImportError:
message = "pywin32 module is not installed, please install it on the server to get the available interface names"
@ -194,4 +198,8 @@ def interfaces():
except Exception as e:
log.error("uncaught exception {type}".format(type=type(e)), exc_info=1)
raise aiohttp.web.HTTPInternalServerError(text="uncaught exception: {}".format(e))
if service_installed is False:
raise aiohttp.web.HTTPInternalServerError(text="The Winpcap or Npcap is not installed or running")
return results