1
0
mirror of https://github.com/GNS3/gns3-server synced 2024-12-01 04:38:12 +00:00

Fix Docker dev server script.

This commit is contained in:
grossmj 2020-10-19 18:28:01 +10:30
parent be6d4771d0
commit f20e16074f
4 changed files with 10 additions and 24 deletions

View File

@ -1,6 +1,4 @@
# Dockerfile for GNS3 server development FROM ubuntu:20.04
FROM ubuntu:18.04
ENV DEBIAN_FRONTEND noninteractive ENV DEBIAN_FRONTEND noninteractive
@ -12,12 +10,13 @@ ENV LC_ALL en_US.UTF-8
RUN apt-get update && apt-get install -y software-properties-common RUN apt-get update && apt-get install -y software-properties-common
RUN add-apt-repository ppa:gns3/ppa RUN add-apt-repository ppa:gns3/ppa
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
git \
locales \ locales \
python3-pip \ python3-pip \
python3-dev \ python3-dev \
qemu-system-x86 \ qemu-system-x86 \
qemu-kvm \ qemu-kvm \
libvirt-bin \ libvirt-daemon-system \
x11vnc x11vnc
RUN locale-gen en_US.UTF-8 RUN locale-gen en_US.UTF-8

View File

@ -14,7 +14,6 @@
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
import asyncio
from fastapi import FastAPI, Request from fastapi import FastAPI, Request
from fastapi.responses import JSONResponse from fastapi.responses import JSONResponse
@ -112,7 +111,7 @@ async def image_missing_error_handler(request: Request, exc: ImageMissingError):
@compute_api.exception_handler(NodeError) @compute_api.exception_handler(NodeError)
async def image_missing_error_handler(request: Request, exc: NodeError): async def node_error_handler(request: Request, exc: NodeError):
return JSONResponse( return JSONResponse(
status_code=409, status_code=409,
content={"message": str(exc), "exception": exc.__class__.__name__}, content={"message": str(exc), "exception": exc.__class__.__name__},
@ -120,21 +119,12 @@ async def image_missing_error_handler(request: Request, exc: NodeError):
@compute_api.exception_handler(UbridgeError) @compute_api.exception_handler(UbridgeError)
async def image_missing_error_handler(request: Request, exc: UbridgeError): async def ubridge_error_handler(request: Request, exc: UbridgeError):
return JSONResponse( return JSONResponse(
status_code=409, status_code=409,
content={"message": str(exc), "exception": exc.__class__.__name__}, content={"message": str(exc), "exception": exc.__class__.__name__},
) )
@compute_api.exception_handler(asyncio.CancelledError)
async def image_missing_error_handler(request: Request, exc: asyncio.CancelledError):
return JSONResponse(
status_code=408,
content={"message": "Request for '{}' cancelled".format(request.url.path)},
)
compute_api.include_router(capabilities.router, tags=["Capabilities"]) compute_api.include_router(capabilities.router, tags=["Capabilities"])
compute_api.include_router(compute.router, tags=["Compute"]) compute_api.include_router(compute.router, tags=["Compute"])
compute_api.include_router(notifications.router, tags=["Notifications"]) compute_api.include_router(notifications.router, tags=["Notifications"])

View File

@ -148,7 +148,7 @@ async def start_capture(capture_data: dict, link: Link = Depends(dep_link)):
@router.post("/{link_id}/stop_capture", @router.post("/{link_id}/stop_capture",
status_code=status.HTTP_201_CREATED, status_code=status.HTTP_204_NO_CONTENT,
response_model=schemas.Link, response_model=schemas.Link,
responses=responses) responses=responses)
async def stop_capture(link: Link = Depends(dep_link)): async def stop_capture(link: Link = Depends(dep_link)):
@ -157,7 +157,6 @@ async def stop_capture(link: Link = Depends(dep_link)):
""" """
await link.stop_capture() await link.stop_capture()
return link.__json__()
@router.delete("/{link_id}", @router.delete("/{link_id}",
@ -201,7 +200,7 @@ async def pcap(request: Request, link: Link = Depends(dep_link)):
headers['Router-Host'] = request.client.host headers['Router-Host'] = request.client.host
body = await request.body() body = await request.body()
async def compute_pcpa_stream(): async def compute_pcap_stream():
connector = aiohttp.TCPConnector(limit=None, force_close=True) connector = aiohttp.TCPConnector(limit=None, force_close=True)
async with aiohttp.ClientSession(connector=connector, headers=headers) as session: async with aiohttp.ClientSession(connector=connector, headers=headers) as session:
@ -211,4 +210,4 @@ async def pcap(request: Request, link: Link = Depends(dep_link)):
break break
yield data yield data
return StreamingResponse(compute_pcpa_stream(), media_type="application/vnd.tcpdump.pcap") return StreamingResponse(compute_pcap_stream(), media_type="application/vnd.tcpdump.pcap")

View File

@ -15,9 +15,7 @@
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# A docker server use for localy test a remote GNS3 server # A docker server use for locally test a remote GNS3 server
docker build -t gns3-server . docker build -t gns3-server .
docker run -i -h gns3vm -p 8001:8001/tcp -t gns3-server python3 -m gns3server --port 8001 docker run --privileged -i -h gns3vm -p 8001:8001/tcp -p 5000-5100:5000-5100 -t gns3-server python3 -m gns3server --port 8001