mirror of
https://github.com/GNS3/gns3-server.git
synced 2025-06-24 17:55:15 +00:00
Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
05607fa2f3 |
16
.github/workflows/add-new-issues-to-project.yml
vendored
16
.github/workflows/add-new-issues-to-project.yml
vendored
@ -1,16 +0,0 @@
|
||||
name: Add new issues to GNS3 project
|
||||
|
||||
on:
|
||||
issues:
|
||||
types:
|
||||
- opened
|
||||
|
||||
jobs:
|
||||
add-to-project:
|
||||
name: Add issue to project
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/add-to-project@v1.0.1
|
||||
with:
|
||||
project-url: https://github.com/orgs/GNS3/projects/3
|
||||
github-token: ${{ secrets.ADD_NEW_ISSUES_TO_PROJECT }}
|
93
.github/workflows/codeql-analysis.yml
vendored
93
.github/workflows/codeql-analysis.yml
vendored
@ -1,93 +0,0 @@
|
||||
# For most projects, this workflow file will not need changing; you simply need
|
||||
# to commit it to your repository.
|
||||
#
|
||||
# You may wish to alter this file to override the set of languages analyzed,
|
||||
# or to provide custom queries or build logic.
|
||||
#
|
||||
# ******** NOTE ********
|
||||
# We have attempted to detect the languages in your repository. Please check
|
||||
# the `language` matrix defined below to confirm you have the correct set of
|
||||
# supported CodeQL languages.
|
||||
#
|
||||
name: "CodeQL"
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ "master" ]
|
||||
pull_request:
|
||||
branches: [ "master" ]
|
||||
schedule:
|
||||
- cron: '21 12 * * 4'
|
||||
|
||||
jobs:
|
||||
analyze:
|
||||
name: Analyze (${{ matrix.language }})
|
||||
# Runner size impacts CodeQL analysis time. To learn more, please see:
|
||||
# - https://gh.io/recommended-hardware-resources-for-running-codeql
|
||||
# - https://gh.io/supported-runners-and-hardware-resources
|
||||
# - https://gh.io/using-larger-runners (GitHub.com only)
|
||||
# Consider using larger runners or machines with greater resources for possible analysis time improvements.
|
||||
runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
|
||||
timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
|
||||
permissions:
|
||||
# required for all workflows
|
||||
security-events: write
|
||||
|
||||
# required to fetch internal or private CodeQL packs
|
||||
packages: read
|
||||
|
||||
# only required for workflows in private repositories
|
||||
actions: read
|
||||
contents: read
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- language: python
|
||||
build-mode: none
|
||||
# CodeQL supports the following values keywords for 'language': 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'swift'
|
||||
# Use `c-cpp` to analyze code written in C, C++ or both
|
||||
# Use 'java-kotlin' to analyze code written in Java, Kotlin or both
|
||||
# Use 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both
|
||||
# To learn more about changing the languages that are analyzed or customizing the build mode for your analysis,
|
||||
# see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning.
|
||||
# If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how
|
||||
# your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v3
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
build-mode: ${{ matrix.build-mode }}
|
||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||
# By default, queries listed here will override any specified in a config file.
|
||||
# Prefix the list here with "+" to use these queries and those in the config file.
|
||||
|
||||
# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
|
||||
# queries: security-extended,security-and-quality
|
||||
|
||||
# If the analyze step fails for one of the languages you are analyzing with
|
||||
# "We were unable to automatically build your code", modify the matrix above
|
||||
# to set the build mode to "manual" for that language. Then modify this step
|
||||
# to build your code.
|
||||
# ℹ️ Command-line programs to run using the OS shell.
|
||||
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
|
||||
- if: matrix.build-mode == 'manual'
|
||||
shell: bash
|
||||
run: |
|
||||
echo 'If you are using a "manual" build mode for one or more of the' \
|
||||
'languages you are analyzing, replace this with the commands to build' \
|
||||
'your code, for example:'
|
||||
echo ' make bootstrap'
|
||||
echo ' make release'
|
||||
exit 1
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v3
|
||||
with:
|
||||
category: "/language:${{matrix.language}}"
|
40
.github/workflows/publish-api-documentation.yml
vendored
40
.github/workflows/publish-api-documentation.yml
vendored
@ -1,40 +0,0 @@
|
||||
name: publish-api-documentation
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
tags:
|
||||
- v3.*
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
ref: "gh-pages"
|
||||
- uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: 3.8
|
||||
- name: Merge changes from 3.0 branch
|
||||
run: |
|
||||
git config user.name github-actions
|
||||
git config user.email github-actions@github.com
|
||||
git merge origin/3.0 -X theirs
|
||||
- name: Install GNS3 server and dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
python -m pip install .
|
||||
- name: Generate the API documentation
|
||||
run: |
|
||||
cd scripts
|
||||
python3 publish_api_documentation.py
|
||||
- name: Publish the API documentation
|
||||
run: |
|
||||
git add docs
|
||||
git status
|
||||
git commit -m "Publish API documentation"
|
||||
git push
|
55
.github/workflows/testing.yml
vendored
55
.github/workflows/testing.yml
vendored
@ -1,55 +0,0 @@
|
||||
name: testing
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- 3.0
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
- 3.0
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
os: ["ubuntu-latest"]
|
||||
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
|
||||
#include:
|
||||
# only test with Python 3.10 on Windows
|
||||
# - os: windows-latest
|
||||
# python-version: "3.10"
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Set up Python ${{ matrix.python-version }}
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
- name: Display Python version
|
||||
run: python -c "import sys; print(sys.version)"
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
python -m pip install .[dev]
|
||||
|
||||
- name: Install Windows specific dependencies
|
||||
if: runner.os == 'Windows'
|
||||
run: |
|
||||
python -m pip install -r win-requirements.txt
|
||||
curl -O "http://www.win10pcap.org/download/Win10Pcap-v10.2-5002.msi"
|
||||
msiexec /i "Win10Pcap-v10.2-5002.msi" /qn /norestart
|
||||
|
||||
- name: Lint with flake8
|
||||
run: |
|
||||
# stop the build if there are Python syntax errors or undefined names
|
||||
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
|
||||
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
|
||||
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
|
||||
- name: Test with pytest
|
||||
run: |
|
||||
python -m pytest -vv
|
17
.gitignore
vendored
17
.gitignore
vendored
@ -1,16 +1,8 @@
|
||||
*.py[cod]
|
||||
__pycache__
|
||||
.pytest_cache
|
||||
|
||||
#py.test
|
||||
.cache
|
||||
|
||||
# environment file
|
||||
.env
|
||||
|
||||
# hypothesis files
|
||||
.hypothesis
|
||||
|
||||
# C extensions
|
||||
*.so
|
||||
|
||||
@ -21,6 +13,7 @@ dist
|
||||
build
|
||||
eggs
|
||||
parts
|
||||
bin
|
||||
var
|
||||
sdist
|
||||
develop-eggs
|
||||
@ -46,7 +39,6 @@ nosetests.xml
|
||||
.project
|
||||
.pydevproject
|
||||
.settings
|
||||
.vscode
|
||||
|
||||
# Pycharm
|
||||
.idea
|
||||
@ -60,10 +52,3 @@ docs/_build
|
||||
#VPCS
|
||||
vpcs.hist
|
||||
startup.vpcs
|
||||
.gns3_shell_history
|
||||
|
||||
# Virtualenv
|
||||
env
|
||||
venv
|
||||
*venv
|
||||
.ropeproject
|
||||
|
13
.travis.yml
Normal file
13
.travis.yml
Normal file
@ -0,0 +1,13 @@
|
||||
language: python
|
||||
python:
|
||||
- '3.5'
|
||||
sudo: false
|
||||
cache: pip
|
||||
install:
|
||||
- python setup.py install
|
||||
- pip install -rdev-requirements.txt
|
||||
- pip install coveralls
|
||||
script:
|
||||
- py.test -v -s tests --cov gns3server --cov-report term-missing
|
||||
after_success:
|
||||
- coveralls
|
14
.whitesource
14
.whitesource
@ -1,14 +0,0 @@
|
||||
{
|
||||
"scanSettings": {
|
||||
"configMode": "AUTO",
|
||||
"configExternalURL": "",
|
||||
"projectToken" : "",
|
||||
"baseBranches": ["master", "2.2", "3.0"]
|
||||
},
|
||||
"checkRunSettings": {
|
||||
"vulnerableCheckRunConclusionLevel": "failure"
|
||||
},
|
||||
"issueSettings": {
|
||||
"minSeverityLevel": "LOW"
|
||||
}
|
||||
}
|
37
Dockerfile
37
Dockerfile
@ -1,37 +0,0 @@
|
||||
FROM ubuntu:focal
|
||||
|
||||
WORKDIR /gns3server
|
||||
|
||||
RUN apt update && DEBIAN_FRONTEND=noninteractive apt install -y \
|
||||
locales \
|
||||
locales-all
|
||||
|
||||
ENV LANG en_US.UTF-8
|
||||
ENV LANGUAGE en_US:en
|
||||
ENV LC_ALL en_US.UTF-8
|
||||
|
||||
COPY ./requirements.txt /gns3server/requirements.txt
|
||||
|
||||
RUN DEBIAN_FRONTEND=noninteractive apt install -y \
|
||||
locales \
|
||||
software-properties-common \
|
||||
python3-pip \
|
||||
python3-all \
|
||||
python3-setuptools \
|
||||
python3-dev \
|
||||
busybox-static \
|
||||
gcc \
|
||||
qemu-kvm \
|
||||
libvirt-daemon-system
|
||||
|
||||
RUN add-apt-repository ppa:gns3/ppa && apt update && DEBIAN_FRONTEND=noninteractive apt install -y \
|
||||
vpcs \
|
||||
ubridge \
|
||||
dynamips
|
||||
|
||||
COPY . /gns3server
|
||||
|
||||
RUN mkdir -p ~/.config/GNS3/3.0/
|
||||
RUN cp scripts/gns3_server.conf ~/.config/GNS3/3.0/
|
||||
|
||||
RUN python3 -m pip install .
|
11
MANIFEST.in
11
MANIFEST.in
@ -1,7 +1,12 @@
|
||||
include README.md
|
||||
include README.rst
|
||||
include AUTHORS
|
||||
include INSTALL
|
||||
include LICENSE
|
||||
include CHANGELOG
|
||||
recursive-include gns3server *
|
||||
include MANIFEST.in
|
||||
include tox.ini
|
||||
include requirements.txt
|
||||
recursive-include tests *
|
||||
recursive-exclude docs *
|
||||
recursive-include gns3server *
|
||||
recursive-exclude * __pycache__
|
||||
recursive-exclude * *.py[co]
|
||||
|
134
README.md
134
README.md
@ -1,134 +0,0 @@
|
||||
# GNS3 server repository
|
||||
|
||||
[](https://github.com/psf/black)
|
||||
[](https://github.com/GNS3/gns3-server/actions?query=workflow%3Atesting+branch%3A3.0)
|
||||
[](https://pypi.python.org/pypi/gns3-server)
|
||||
[](https://snyk.io/test/github/GNS3/gns3-server)
|
||||
|
||||
The GNS3 server manages emulators and other virtualization software such as Dynamips, Qemu/KVM, Docker, VPCS, VirtualBox and VMware Workstation.
|
||||
Clients like the [GNS3 GUI](https://github.com/GNS3/gns3-gui/) and the [GNS3 Web UI](https://github.com/GNS3/gns3-web-ui/) control the server using a HTTP REST API.
|
||||
|
||||
## Installation
|
||||
|
||||
These instructions are for using GNS3, please see below for development.
|
||||
|
||||
### Windows & macOS
|
||||
|
||||
Please use our [Windows installer or DMG package](https://gns3.com/software/download) to install the stable build along with the GNS3 VM.
|
||||
Note that as of GNS3 version above 3.0, you must run the server using the GNS3 VM or on a Linux system (remote, cloud or virtual machine).
|
||||
|
||||
### Linux
|
||||
|
||||
#### Ubuntu based distributions
|
||||
|
||||
We build and test packages for actively supported Ubuntu versions.
|
||||
Other distros based on Ubuntu, like Mint, should also be supported.
|
||||
|
||||
Packages can be installed from our Personal Package Archives (PPA) repository:
|
||||
|
||||
```shell
|
||||
sudo apt update
|
||||
sudo apt install software-properties-common
|
||||
sudo add-apt-repository ppa:gns3/ppa
|
||||
sudo apt update
|
||||
sudo apt install gns3-gui gns3-server
|
||||
```
|
||||
|
||||
#### Other Linux distributions
|
||||
|
||||
GNS3 is often packaged for other distributions by third-parties:
|
||||
|
||||
* [Gentoo](https://packages.gentoo.org/package/net-misc/gns3-server)
|
||||
* [Alpine](https://pkgs.alpinelinux.org/package/v3.10/community/x86_64/gns3-server)
|
||||
* [NixOS](https://search.nixos.org/packages?channel=21.11&from=0&size=50&sort=relevance&type=packages&query=gns3-server)
|
||||
|
||||
#### PyPi
|
||||
|
||||
You may use PyPi in case no package is provided, or you would like to do a manual installation:
|
||||
|
||||
* https://pypi.org/project/gns3-server/
|
||||
* https://pypi.org/project/gns3-gui/
|
||||
|
||||
```shell
|
||||
python3 -m pip install gns3-gui
|
||||
python3 -m pip install gns3-server
|
||||
```
|
||||
|
||||
The downside of this method is you will have to manually install all dependencies (see below).
|
||||
|
||||
Please see our [documentation](https://docs.gns3.com/docs/getting-started/installation/linux) for more details.
|
||||
|
||||
### Software dependencies
|
||||
|
||||
In addition to Python dependencies, other software may be required, recommended or optional.
|
||||
|
||||
* [uBridge](https://github.com/GNS3/ubridge/) is required, it interconnects the nodes.
|
||||
* [Dynamips](https://github.com/GNS3/dynamips/) is required for running IOS routers (using real IOS images) as well as the internal switches and hubs.
|
||||
* [VPCS](https://github.com/GNS3/vpcs/) is recommended, it is a builtin node simulating a very simple computer to perform connectivity tests using ping, traceroute etc.
|
||||
* Qemu is strongly recommended as most node types are based on Qemu, for example Cisco IOSv and Arista vEOS.
|
||||
* libvirt is recommended as it's needed for the NAT cloud.
|
||||
* Docker is optional, some nodes are based on Docker.
|
||||
* mtools is recommended to support data transfer to/from QEMU VMs using virtual disks.
|
||||
* i386-libraries of libc and libcrypto are optional, they are only needed to run IOU based nodes.
|
||||
|
||||
Note that Docker needs the script program (`bsdutils` or `util-linux` package), when running a Docker VM and a static busybox during installation (python3 setup.py install / pip3 install / package creation).
|
||||
|
||||
## Development
|
||||
|
||||
### Setting up
|
||||
|
||||
These commands will install the server as well as all Python dependencies:
|
||||
|
||||
```shell
|
||||
git clone https://github.com/GNS3/gns3-server
|
||||
cd gns3-server
|
||||
git checkout 3.0
|
||||
python3 -m venv venv-gns3server
|
||||
source venv-gns3server/bin/activate
|
||||
python3 -m pip install .
|
||||
python3 -m gns3server
|
||||
```
|
||||
|
||||
You will have to manually install other software dependencies (see above), for Dynamips, VPCS and uBridge the easiest is to install from our PPA.
|
||||
|
||||
### Docker container
|
||||
|
||||
Alternatively, you can run the GNS3 server in a container
|
||||
|
||||
```shell
|
||||
bash scripts/docker_dev_server.sh
|
||||
```
|
||||
|
||||
### Running tests
|
||||
|
||||
First, install the development dependencies:
|
||||
|
||||
```shell
|
||||
python3 -m pip install -r dev-requirements.txt
|
||||
```
|
||||
|
||||
Then run the tests using pytest:
|
||||
|
||||
```shell
|
||||
python3 -m pytest -vv tests/
|
||||
```
|
||||
|
||||
### API documentation
|
||||
|
||||
The API documentation can be accessed when running the server locally:
|
||||
|
||||
* On `http://IP:PORT/docs` to see with Swagger UI (i.e. `http://localhost:3080/docs`)
|
||||
* On `http://IP:PORT/redoc` to see with ReDoc (i.e. `http://localhost:3080/redoc`)
|
||||
|
||||
The documentation can also be viewed [online](http://apiv3.gns3.net) however it may not be the most up-to-date version since it needs manually synchronization with the current code. Also, you cannot use this to interact with a GNS3 server.
|
||||
|
||||
### Branches
|
||||
|
||||
#### master
|
||||
|
||||
master is the next stable release, you can test it in your day-to -day activities.
|
||||
Bug fixes or small improvements pull requests go here.
|
||||
|
||||
3.x development brand for the next major release.
|
||||
|
||||
**Never** use this branch for production. Pull requests for major new features go here.
|
208
README.rst
Normal file
208
README.rst
Normal file
@ -0,0 +1,208 @@
|
||||
GNS3-server
|
||||
===========
|
||||
|
||||
.. image:: https://travis-ci.org/GNS3/gns3-server.svg?branch=master
|
||||
:target: https://travis-ci.org/GNS3/gns3-server
|
||||
|
||||
.. image:: https://img.shields.io/pypi/v/gns3-server.svg
|
||||
:target: https://pypi.python.org/pypi/gns3-server
|
||||
|
||||
This is the GNS3 server repository.
|
||||
|
||||
The GNS3 server manages emulators such as Dynamips, VirtualBox or Qemu/KVM.
|
||||
Clients like the GNS3 GUI controls the server using a HTTP REST API.
|
||||
|
||||
You will need the GNS3 GUI (gns3-gui repository) to control the server.
|
||||
|
||||
Branches
|
||||
--------
|
||||
|
||||
master
|
||||
******
|
||||
master is the next stable release, you can test it in your day to day activities.
|
||||
Bug fixes or small improvements pull requests go here.
|
||||
|
||||
1.x (1.4 for example)
|
||||
********
|
||||
Next major release
|
||||
|
||||
*Never* use this branch for production. Pull requests for major new features go here.
|
||||
|
||||
Linux
|
||||
-----
|
||||
|
||||
GNS3 is perhaps packaged for your distribution:
|
||||
|
||||
* Gentoo: https://packages.gentoo.org/package/net-misc/gns3-server
|
||||
|
||||
|
||||
Linux (Debian based)
|
||||
--------------------
|
||||
|
||||
The following instructions have been tested with Ubuntu and Mint.
|
||||
You must be connected to the Internet in order to install the dependencies.
|
||||
|
||||
Dependencies:
|
||||
|
||||
- Python 3.4 or above
|
||||
- aiohttp
|
||||
- setuptools
|
||||
- psutil
|
||||
- jsonschema
|
||||
|
||||
The following commands will install some of these dependencies:
|
||||
|
||||
.. code:: bash
|
||||
|
||||
sudo apt-get install python3-setuptools
|
||||
|
||||
Finally these commands will install the server as well as the rest of the dependencies:
|
||||
|
||||
.. code:: bash
|
||||
|
||||
cd gns3-server-master
|
||||
sudo python3 setup.py install
|
||||
gns3server
|
||||
|
||||
To run tests use:
|
||||
|
||||
.. code:: bash
|
||||
|
||||
py.test -v
|
||||
|
||||
|
||||
Run as daemon (Unix only)
|
||||
**************************
|
||||
|
||||
You will found init sample script for various systems
|
||||
inside the init directory.
|
||||
|
||||
Usefull options:
|
||||
|
||||
* --daemon: start process as a daemon
|
||||
* --log logfile: store output in a logfile
|
||||
* --pid pidfile: store the pid of the running process in a file and prevent double execution
|
||||
|
||||
All the init script require the creation of a GNS3 user. You can change it to another user.
|
||||
|
||||
.. code:: bash
|
||||
|
||||
sudo adduser gns3
|
||||
|
||||
upstart
|
||||
~~~~~~~
|
||||
|
||||
For ubuntu < 15.04
|
||||
|
||||
You need to copy init/gns3.conf.upstart to /etc/init/gns3.conf
|
||||
|
||||
.. code:: bash
|
||||
|
||||
sudo chown root /etc/init/gns3.conf
|
||||
sudo service gns3 start
|
||||
|
||||
|
||||
systemd
|
||||
~~~~~~~~
|
||||
You need to copy init/gns3.service.systemd to /lib/systemd/system/gns3.service
|
||||
|
||||
.. code:: bash
|
||||
|
||||
sudo chown root /lib/systemd/system/gns3.service
|
||||
sudo systemctl start gns3
|
||||
|
||||
Windows
|
||||
-------
|
||||
|
||||
|
||||
Please use our `all-in-one installer <https://community.gns3.com/community/software/download>`_ to install the stable build.
|
||||
|
||||
If you install via source you need to first install:
|
||||
|
||||
- Python (3.3 or above) - https://www.python.org/downloads/windows/
|
||||
- Pywin32 - https://sourceforge.net/projects/pywin32/
|
||||
|
||||
Then you can call
|
||||
|
||||
.. code:: bash
|
||||
|
||||
python setup.py install
|
||||
|
||||
to install the remaining dependencies.
|
||||
|
||||
To run the tests, you also need to call
|
||||
|
||||
.. code:: bash
|
||||
|
||||
pip install pytest pytest-capturelog
|
||||
|
||||
before actually running the tests with
|
||||
|
||||
.. code:: bash
|
||||
|
||||
python setup.py test
|
||||
|
||||
or with
|
||||
|
||||
.. code:: bash
|
||||
|
||||
py.test -v
|
||||
|
||||
Mac OS X
|
||||
--------
|
||||
|
||||
Please use our DMG package for a simple installation.
|
||||
|
||||
If you want to test the current git version or contribute to the project.
|
||||
|
||||
You can follow this instructions with virtualenwrapper: http://virtualenvwrapper.readthedocs.org/
|
||||
and homebrew: http://brew.sh/.
|
||||
|
||||
.. code:: bash
|
||||
|
||||
brew install python3
|
||||
mkvirtualenv gns3-server --python=/usr/local/bin/python3.4
|
||||
python3 setup.py install
|
||||
gns3server
|
||||
|
||||
SSL
|
||||
---
|
||||
|
||||
If you want enable SSL support on GNS3 you can generate a self signed certificate:
|
||||
|
||||
.. code:: bash
|
||||
|
||||
bash gns3server/cert_utils/create_cert.sh
|
||||
|
||||
This command will put the files in ~/.config/GNS3/ssl
|
||||
|
||||
After you can start the server in SSL mode with:
|
||||
|
||||
.. code:: bash
|
||||
|
||||
python gns3server/main.py --certfile ~/.config/GNS3/ssl/server.cert --certkey ~/.config/GNS3/ssl/server.key --ssl
|
||||
|
||||
|
||||
Or in your gns3_server.conf by adding in the Server section:
|
||||
|
||||
.. code:: ini
|
||||
|
||||
[Server]
|
||||
certfile=/Users/noplay/.config/GNS3/ssl/server.cert
|
||||
certkey=/Users/noplay/.config/GNS3/ssl/server.key
|
||||
ssl=True
|
||||
|
||||
Running tests
|
||||
*************
|
||||
|
||||
Just run:
|
||||
|
||||
.. code:: bash
|
||||
|
||||
py.test -vv
|
||||
|
||||
If you want test coverage:
|
||||
|
||||
.. code:: bash
|
||||
|
||||
py.test --cov-report term-missing --cov=gns3server
|
17
SECURITY.md
17
SECURITY.md
@ -1,17 +0,0 @@
|
||||
# Security Policy
|
||||
|
||||
## Supported Versions
|
||||
|
||||
These are the versions of the GNS3 server that are
|
||||
currently being supported with security updates.
|
||||
|
||||
| Version | Supported |
|
||||
| ------- | ------------------ |
|
||||
| 3.x.x | :white_check_mark: |
|
||||
| 2.2.x | :white_check_mark: |
|
||||
| 2.1.x | :x: |
|
||||
| 1.x.x | :x: |
|
||||
|
||||
## Reporting a Vulnerability
|
||||
|
||||
Please use GitHub's report a vulnerability feature. More information can be found in https://docs.github.com/en/code-security/security-advisories/guidance-on-reporting-and-writing/privately-reporting-a-security-vulnerability
|
61
conf/gns3_server.conf
Normal file
61
conf/gns3_server.conf
Normal file
@ -0,0 +1,61 @@
|
||||
[Server]
|
||||
; IP where the server listen for connections
|
||||
host = 0.0.0.0
|
||||
; HTTP port for controlling the servers
|
||||
port = 3080
|
||||
|
||||
; Option to enable SSL encryption
|
||||
ssl = False
|
||||
certfile=/home/gns3/.config/GNS3/ssl/server.cert
|
||||
certkey=/home/gns3/.config/GNS3/ssl/server.key
|
||||
|
||||
; Path where devices images are stored
|
||||
images_path = /home/gns3/GNS3/images
|
||||
; Path where user projects are stored
|
||||
projects_path = /home/gns3/GNS3/projects
|
||||
|
||||
; Option to automatically send crash reports to the GNS3 team
|
||||
report_errors = True
|
||||
|
||||
; First console port of the range allocated to devices
|
||||
console_start_port_range = 5000
|
||||
; Last console port of the range allocated to devices
|
||||
console_end_port_range = 10000
|
||||
; First port of the range allocated for inter-device communication. Two ports are allocated per link.
|
||||
udp_start_port_range = 10000
|
||||
; Last port of the range allocated for inter-device communication. Two ports are allocated per link
|
||||
udp_start_end_range = 20000
|
||||
; uBridge executable location, default: search in PATH
|
||||
;ubridge_path = ubridge
|
||||
|
||||
; Option to enable HTTP authentication.
|
||||
auth = False
|
||||
; Username for HTTP authentication.
|
||||
user = gns3
|
||||
; Password for HTTP authentication.
|
||||
password = gns3
|
||||
|
||||
[VPCS]
|
||||
; VPCS executable location, default: search in PATH
|
||||
;vpcs_path = vpcs
|
||||
|
||||
[Dynamips]
|
||||
; Enable auxiliary console ports on IOS routers
|
||||
allocate_aux_console_ports = False
|
||||
mmap_support = True
|
||||
; Dynamips executable path, default: search in PATH
|
||||
;dynamips_path = dynamips
|
||||
sparse_memory_support = True
|
||||
ghost_ios_support = True
|
||||
|
||||
[IOU]
|
||||
; iouyap executable path, default: search in PATH
|
||||
;iouyap_path = iouyap
|
||||
; Path of your .iourc file. If not provided, the file is searched in $HOME/.iourc
|
||||
iourc_path = /home/gns3/.iourc
|
||||
; Validate if the iourc license file is correct. If you turn this off and your licence is invalid IOU will not start and no errors will be shown.
|
||||
license_check = True
|
||||
|
||||
[Qemu]
|
||||
; !! Remember to add the gns3 user to the KVM group, otherwise you will not have read / write permssions to /dev/kvm !!
|
||||
enable_kvm = True
|
@ -1,7 +1,8 @@
|
||||
pytest==8.3.3
|
||||
flake8==7.1.1
|
||||
pytest-timeout==2.3.1
|
||||
pytest-asyncio==0.21.2
|
||||
requests==2.32.3
|
||||
httpx==0.27.2 # version 0.24.1 is required by httpx_ws
|
||||
httpx_ws==0.6.2
|
||||
-rrequirements.txt
|
||||
|
||||
sphinx==1.2.3
|
||||
pytest==2.8.2
|
||||
pep8==1.5.7
|
||||
pytest-capturelog==0.7
|
||||
pytest-cov==2.2.0
|
||||
pytest-timeout==0.5
|
||||
|
@ -1,15 +0,0 @@
|
||||
version: '3.7'
|
||||
|
||||
services:
|
||||
gns3server:
|
||||
privileged: true
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
volumes:
|
||||
- ./gns3server:/server/
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
command: python3 -m gns3server --local --port 3080
|
||||
ports:
|
||||
- 3080:3080
|
||||
- 5000-5100:5000-5100
|
@ -1 +0,0 @@
|
||||
apiv3.gns3.net
|
177
docs/Makefile
Normal file
177
docs/Makefile
Normal file
@ -0,0 +1,177 @@
|
||||
# Makefile for Sphinx documentation
|
||||
#
|
||||
|
||||
# You can set these variables from the command line.
|
||||
SPHINXOPTS =
|
||||
SPHINXBUILD = sphinx-build
|
||||
PAPER =
|
||||
BUILDDIR = _build
|
||||
|
||||
# User-friendly check for sphinx-build
|
||||
ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
|
||||
$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
|
||||
endif
|
||||
|
||||
# Internal variables.
|
||||
PAPEROPT_a4 = -D latex_paper_size=a4
|
||||
PAPEROPT_letter = -D latex_paper_size=letter
|
||||
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
|
||||
# the i18n builder cannot share the environment and doctrees with the others
|
||||
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
|
||||
|
||||
.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
|
||||
|
||||
help:
|
||||
@echo "Please use \`make <target>' where <target> is one of"
|
||||
@echo " html to make standalone HTML files"
|
||||
@echo " dirhtml to make HTML files named index.html in directories"
|
||||
@echo " singlehtml to make a single large HTML file"
|
||||
@echo " pickle to make pickle files"
|
||||
@echo " json to make JSON files"
|
||||
@echo " htmlhelp to make HTML files and a HTML help project"
|
||||
@echo " qthelp to make HTML files and a qthelp project"
|
||||
@echo " devhelp to make HTML files and a Devhelp project"
|
||||
@echo " epub to make an epub"
|
||||
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
|
||||
@echo " latexpdf to make LaTeX files and run them through pdflatex"
|
||||
@echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
|
||||
@echo " text to make text files"
|
||||
@echo " man to make manual pages"
|
||||
@echo " texinfo to make Texinfo files"
|
||||
@echo " info to make Texinfo files and run them through makeinfo"
|
||||
@echo " gettext to make PO message catalogs"
|
||||
@echo " changes to make an overview of all changed/added/deprecated items"
|
||||
@echo " xml to make Docutils-native XML files"
|
||||
@echo " pseudoxml to make pseudoxml-XML files for display purposes"
|
||||
@echo " linkcheck to check all external links for integrity"
|
||||
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
|
||||
|
||||
clean:
|
||||
rm -rf $(BUILDDIR)/*
|
||||
|
||||
html:
|
||||
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
|
||||
@echo
|
||||
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
|
||||
|
||||
dirhtml:
|
||||
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
|
||||
@echo
|
||||
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
|
||||
|
||||
singlehtml:
|
||||
$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
|
||||
@echo
|
||||
@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
|
||||
|
||||
pickle:
|
||||
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
|
||||
@echo
|
||||
@echo "Build finished; now you can process the pickle files."
|
||||
|
||||
json:
|
||||
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
|
||||
@echo
|
||||
@echo "Build finished; now you can process the JSON files."
|
||||
|
||||
htmlhelp:
|
||||
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
|
||||
@echo
|
||||
@echo "Build finished; now you can run HTML Help Workshop with the" \
|
||||
".hhp project file in $(BUILDDIR)/htmlhelp."
|
||||
|
||||
qthelp:
|
||||
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
|
||||
@echo
|
||||
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
|
||||
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
|
||||
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/GNS3.qhcp"
|
||||
@echo "To view the help file:"
|
||||
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/GNS3.qhc"
|
||||
|
||||
devhelp:
|
||||
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
|
||||
@echo
|
||||
@echo "Build finished."
|
||||
@echo "To view the help file:"
|
||||
@echo "# mkdir -p $$HOME/.local/share/devhelp/GNS3"
|
||||
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/GNS3"
|
||||
@echo "# devhelp"
|
||||
|
||||
epub:
|
||||
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
|
||||
@echo
|
||||
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
|
||||
|
||||
latex:
|
||||
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
||||
@echo
|
||||
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
|
||||
@echo "Run \`make' in that directory to run these through (pdf)latex" \
|
||||
"(use \`make latexpdf' here to do that automatically)."
|
||||
|
||||
latexpdf:
|
||||
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
||||
@echo "Running LaTeX files through pdflatex..."
|
||||
$(MAKE) -C $(BUILDDIR)/latex all-pdf
|
||||
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
|
||||
|
||||
latexpdfja:
|
||||
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
||||
@echo "Running LaTeX files through platex and dvipdfmx..."
|
||||
$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
|
||||
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
|
||||
|
||||
text:
|
||||
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
|
||||
@echo
|
||||
@echo "Build finished. The text files are in $(BUILDDIR)/text."
|
||||
|
||||
man:
|
||||
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
|
||||
@echo
|
||||
@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
|
||||
|
||||
texinfo:
|
||||
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
|
||||
@echo
|
||||
@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
|
||||
@echo "Run \`make' in that directory to run these through makeinfo" \
|
||||
"(use \`make info' here to do that automatically)."
|
||||
|
||||
info:
|
||||
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
|
||||
@echo "Running Texinfo files through makeinfo..."
|
||||
make -C $(BUILDDIR)/texinfo info
|
||||
@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
|
||||
|
||||
gettext:
|
||||
$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
|
||||
@echo
|
||||
@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
|
||||
|
||||
changes:
|
||||
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
|
||||
@echo
|
||||
@echo "The overview file is in $(BUILDDIR)/changes."
|
||||
|
||||
linkcheck:
|
||||
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
|
||||
@echo
|
||||
@echo "Link check complete; look for any errors in the above output " \
|
||||
"or in $(BUILDDIR)/linkcheck/output.txt."
|
||||
|
||||
doctest:
|
||||
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
|
||||
@echo "Testing of doctests in the sources finished, look at the " \
|
||||
"results in $(BUILDDIR)/doctest/output.txt."
|
||||
|
||||
xml:
|
||||
$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
|
||||
@echo
|
||||
@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
|
||||
|
||||
pseudoxml:
|
||||
$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
|
||||
@echo
|
||||
@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
|
14
docs/api/examples/delete_projectsprojectid.txt
Normal file
14
docs/api/examples/delete_projectsprojectid.txt
Normal file
@ -0,0 +1,14 @@
|
||||
curl -i -X DELETE 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80'
|
||||
|
||||
DELETE /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80 HTTP/1.1
|
||||
|
||||
|
||||
|
||||
HTTP/1.1 204
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 0
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}
|
||||
|
14
docs/api/examples/delete_projectsprojectidiouvmsvmid.txt
Normal file
14
docs/api/examples/delete_projectsprojectidiouvmsvmid.txt
Normal file
@ -0,0 +1,14 @@
|
||||
curl -i -X DELETE 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/0813062d-a796-44ef-a5ed-e690c633012e'
|
||||
|
||||
DELETE /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/0813062d-a796-44ef-a5ed-e690c633012e HTTP/1.1
|
||||
|
||||
|
||||
|
||||
HTTP/1.1 204
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 0
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}/iou/vms/{vm_id}
|
||||
|
@ -0,0 +1,14 @@
|
||||
curl -i -X DELETE 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/8759140f-eb6f-4f3b-9a7f-86c79ec747b9/adapters/1/ports/0/nio'
|
||||
|
||||
DELETE /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/8759140f-eb6f-4f3b-9a7f-86c79ec747b9/adapters/1/ports/0/nio HTTP/1.1
|
||||
|
||||
|
||||
|
||||
HTTP/1.1 204
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 0
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}/iou/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
|
||||
|
14
docs/api/examples/delete_projectsprojectidqemuvmsvmid.txt
Normal file
14
docs/api/examples/delete_projectsprojectidqemuvmsvmid.txt
Normal file
@ -0,0 +1,14 @@
|
||||
curl -i -X DELETE 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/1b1a72b7-97ea-4598-8c02-2edc285f7987'
|
||||
|
||||
DELETE /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/1b1a72b7-97ea-4598-8c02-2edc285f7987 HTTP/1.1
|
||||
|
||||
|
||||
|
||||
HTTP/1.1 204
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 0
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}/qemu/vms/{vm_id}
|
||||
|
@ -0,0 +1,14 @@
|
||||
curl -i -X DELETE 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/b5c23125-ea22-4008-a89e-72565ae9f746/adapters/1/ports/0/nio'
|
||||
|
||||
DELETE /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/b5c23125-ea22-4008-a89e-72565ae9f746/adapters/1/ports/0/nio HTTP/1.1
|
||||
|
||||
|
||||
|
||||
HTTP/1.1 204
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 0
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}/qemu/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
|
||||
|
@ -0,0 +1,14 @@
|
||||
curl -i -X DELETE 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/3f79083e-3da8-433e-9e9b-fe72a602ab4e/adapters/0/ports/0/nio'
|
||||
|
||||
DELETE /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/3f79083e-3da8-433e-9e9b-fe72a602ab4e/adapters/0/ports/0/nio HTTP/1.1
|
||||
|
||||
|
||||
|
||||
HTTP/1.1 204
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 0
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}/virtualbox/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
|
||||
|
14
docs/api/examples/delete_projectsprojectidvpcsvmsvmid.txt
Normal file
14
docs/api/examples/delete_projectsprojectidvpcsvmsvmid.txt
Normal file
@ -0,0 +1,14 @@
|
||||
curl -i -X DELETE 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/6f9f4ab8-1b77-4eee-b0fb-e8d299b843a7'
|
||||
|
||||
DELETE /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/6f9f4ab8-1b77-4eee-b0fb-e8d299b843a7 HTTP/1.1
|
||||
|
||||
|
||||
|
||||
HTTP/1.1 204
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 0
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}/vpcs/vms/{vm_id}
|
||||
|
@ -0,0 +1,14 @@
|
||||
curl -i -X DELETE 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/6666f3a7-d805-4572-a35c-bc15213f0b52/adapters/0/ports/0/nio'
|
||||
|
||||
DELETE /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/6666f3a7-d805-4572-a35c-bc15213f0b52/adapters/0/ports/0/nio HTTP/1.1
|
||||
|
||||
|
||||
|
||||
HTTP/1.1 204
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 0
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}/vpcs/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
|
||||
|
72
docs/api/examples/get_interfaces.txt
Normal file
72
docs/api/examples/get_interfaces.txt
Normal file
@ -0,0 +1,72 @@
|
||||
curl -i -X GET 'http://localhost:8000/v1/interfaces'
|
||||
|
||||
GET /v1/interfaces HTTP/1.1
|
||||
|
||||
|
||||
|
||||
HTTP/1.1 200
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 1012
|
||||
CONTENT-TYPE: application/json
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/interfaces
|
||||
|
||||
[
|
||||
{
|
||||
"id": "bridge0",
|
||||
"ip_address": "",
|
||||
"name": "bridge0"
|
||||
},
|
||||
{
|
||||
"id": "en0",
|
||||
"ip_address": "",
|
||||
"name": "en0"
|
||||
},
|
||||
{
|
||||
"id": "en1",
|
||||
"ip_address": "192.168.84.114",
|
||||
"name": "en1"
|
||||
},
|
||||
{
|
||||
"id": "en2",
|
||||
"ip_address": "",
|
||||
"name": "en2"
|
||||
},
|
||||
{
|
||||
"id": "fw0",
|
||||
"ip_address": "",
|
||||
"name": "fw0"
|
||||
},
|
||||
{
|
||||
"id": "lo0",
|
||||
"ip_address": "127.0.0.1",
|
||||
"name": "lo0"
|
||||
},
|
||||
{
|
||||
"id": "p2p0",
|
||||
"ip_address": "",
|
||||
"name": "p2p0"
|
||||
},
|
||||
{
|
||||
"id": "vboxnet0",
|
||||
"ip_address": "172.16.43.1",
|
||||
"name": "vboxnet0"
|
||||
},
|
||||
{
|
||||
"id": "vboxnet1",
|
||||
"ip_address": "192.168.59.3",
|
||||
"name": "vboxnet1"
|
||||
},
|
||||
{
|
||||
"id": "vboxnet2",
|
||||
"ip_address": "",
|
||||
"name": "vboxnet2"
|
||||
},
|
||||
{
|
||||
"id": "vboxnet3",
|
||||
"ip_address": "192.168.99.1",
|
||||
"name": "vboxnet3"
|
||||
}
|
||||
]
|
21
docs/api/examples/get_iouvms.txt
Normal file
21
docs/api/examples/get_iouvms.txt
Normal file
@ -0,0 +1,21 @@
|
||||
curl -i -X GET 'http://localhost:8000/v1/iou/vms'
|
||||
|
||||
GET /v1/iou/vms HTTP/1.1
|
||||
|
||||
|
||||
|
||||
HTTP/1.1 200
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 72
|
||||
CONTENT-TYPE: application/json
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/iou/vms
|
||||
|
||||
[
|
||||
{
|
||||
"filename": "iou.bin",
|
||||
"path": "iou.bin"
|
||||
}
|
||||
]
|
31
docs/api/examples/get_projects.txt
Normal file
31
docs/api/examples/get_projects.txt
Normal file
@ -0,0 +1,31 @@
|
||||
curl -i -X GET 'http://localhost:8000/v1/projects'
|
||||
|
||||
GET /v1/projects HTTP/1.1
|
||||
|
||||
|
||||
|
||||
HTTP/1.1 200
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 656
|
||||
CONTENT-TYPE: application/json
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects
|
||||
|
||||
[
|
||||
{
|
||||
"location": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpmwnekqxo",
|
||||
"name": "test",
|
||||
"path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpmwnekqxo/00010203-0405-0607-0809-0a0b0c0d0e0b",
|
||||
"project_id": "00010203-0405-0607-0809-0a0b0c0d0e0b",
|
||||
"temporary": false
|
||||
},
|
||||
{
|
||||
"location": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpmwnekqxo",
|
||||
"name": "test",
|
||||
"path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpmwnekqxo/00010203-0405-0607-0809-0a0b0c0d0e0f",
|
||||
"project_id": "00010203-0405-0607-0809-0a0b0c0d0e0f",
|
||||
"temporary": false
|
||||
}
|
||||
]
|
22
docs/api/examples/get_projectsprojectid.txt
Normal file
22
docs/api/examples/get_projectsprojectid.txt
Normal file
@ -0,0 +1,22 @@
|
||||
curl -i -X GET 'http://localhost:8000/v1/projects/00010203-0405-0607-0809-0a0b0c0d0e02'
|
||||
|
||||
GET /v1/projects/00010203-0405-0607-0809-0a0b0c0d0e02 HTTP/1.1
|
||||
|
||||
|
||||
|
||||
HTTP/1.1 200
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 297
|
||||
CONTENT-TYPE: application/json
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}
|
||||
|
||||
{
|
||||
"location": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpchvw88rg",
|
||||
"name": "test",
|
||||
"path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpchvw88rg/00010203-0405-0607-0809-0a0b0c0d0e02",
|
||||
"project_id": "00010203-0405-0607-0809-0a0b0c0d0e02",
|
||||
"temporary": false
|
||||
}
|
25
docs/api/examples/get_projectsprojectidfiles.txt
Normal file
25
docs/api/examples/get_projectsprojectidfiles.txt
Normal file
@ -0,0 +1,25 @@
|
||||
curl -i -X GET 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/files'
|
||||
|
||||
GET /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/files HTTP/1.1
|
||||
|
||||
|
||||
|
||||
HTTP/1.1 200
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 204
|
||||
CONTENT-TYPE: application/json
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}/files
|
||||
|
||||
[
|
||||
{
|
||||
"md5sum": "ad0234829205b9033196ba818f7a872b",
|
||||
"path": "test.txt"
|
||||
},
|
||||
{
|
||||
"md5sum": "098f6bcd4621d373cade4e832627b4f6",
|
||||
"path": "vm-1/dynamips/test.bin"
|
||||
}
|
||||
]
|
33
docs/api/examples/get_projectsprojectidiouvmsvmid.txt
Normal file
33
docs/api/examples/get_projectsprojectidiouvmsvmid.txt
Normal file
@ -0,0 +1,33 @@
|
||||
curl -i -X GET 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/82f6e25c-6960-421d-9567-a7453642935b'
|
||||
|
||||
GET /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/82f6e25c-6960-421d-9567-a7453642935b HTTP/1.1
|
||||
|
||||
|
||||
|
||||
HTTP/1.1 200
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 610
|
||||
CONTENT-TYPE: application/json
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}/iou/vms/{vm_id}
|
||||
|
||||
{
|
||||
"console": 2001,
|
||||
"ethernet_adapters": 2,
|
||||
"iourc_path": null,
|
||||
"l1_keepalives": false,
|
||||
"md5sum": null,
|
||||
"name": "PC TEST 1",
|
||||
"nvram": 128,
|
||||
"path": "iou.bin",
|
||||
"private_config": null,
|
||||
"project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
|
||||
"ram": 256,
|
||||
"serial_adapters": 2,
|
||||
"startup_config": null,
|
||||
"use_default_iou_values": true,
|
||||
"vm_directory": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmp2yt9sd1l/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/iou/82f6e25c-6960-421d-9567-a7453642935b",
|
||||
"vm_id": "82f6e25c-6960-421d-9567-a7453642935b"
|
||||
}
|
18
docs/api/examples/get_projectsprojectidiouvmsvmidconfigs.txt
Normal file
18
docs/api/examples/get_projectsprojectidiouvmsvmidconfigs.txt
Normal file
@ -0,0 +1,18 @@
|
||||
curl -i -X GET 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/9ff2d283-1365-4422-93e7-e14c56b809cb/configs'
|
||||
|
||||
GET /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/9ff2d283-1365-4422-93e7-e14c56b809cb/configs HTTP/1.1
|
||||
|
||||
|
||||
|
||||
HTTP/1.1 200
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 40
|
||||
CONTENT-TYPE: application/json
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}/iou/vms/{vm_id}/configs
|
||||
|
||||
{
|
||||
"startup_config_content": "TEST"
|
||||
}
|
56
docs/api/examples/get_projectsprojectidqemuvmsvmid.txt
Normal file
56
docs/api/examples/get_projectsprojectidqemuvmsvmid.txt
Normal file
@ -0,0 +1,56 @@
|
||||
curl -i -X GET 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/84777300-eef4-4a3a-9135-d7009bdb0722'
|
||||
|
||||
GET /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/84777300-eef4-4a3a-9135-d7009bdb0722 HTTP/1.1
|
||||
|
||||
|
||||
|
||||
HTTP/1.1 200
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 1353
|
||||
CONTENT-TYPE: application/json
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}/qemu/vms/{vm_id}
|
||||
|
||||
{
|
||||
"acpi_shutdown": false,
|
||||
"adapter_type": "e1000",
|
||||
"adapters": 1,
|
||||
"boot_priority": "c",
|
||||
"cdrom_image": "",
|
||||
"cdrom_image_md5sum": null,
|
||||
"console": 2001,
|
||||
"console_type": "telnet",
|
||||
"cpu_throttling": 0,
|
||||
"cpus": 1,
|
||||
"hda_disk_image": "",
|
||||
"hda_disk_image_md5sum": null,
|
||||
"hda_disk_interface": "ide",
|
||||
"hdb_disk_image": "",
|
||||
"hdb_disk_image_md5sum": null,
|
||||
"hdb_disk_interface": "ide",
|
||||
"hdc_disk_image": "",
|
||||
"hdc_disk_image_md5sum": null,
|
||||
"hdc_disk_interface": "ide",
|
||||
"hdd_disk_image": "",
|
||||
"hdd_disk_image_md5sum": null,
|
||||
"hdd_disk_interface": "ide",
|
||||
"initrd": "",
|
||||
"initrd_md5sum": null,
|
||||
"kernel_command_line": "",
|
||||
"kernel_image": "",
|
||||
"kernel_image_md5sum": null,
|
||||
"legacy_networking": false,
|
||||
"mac_address": "00:00:ab:07:22:00",
|
||||
"name": "PC TEST 1",
|
||||
"options": "",
|
||||
"platform": "x86_64",
|
||||
"process_priority": "low",
|
||||
"project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
|
||||
"qemu_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmph3pfurip/qemu-system-x86_64",
|
||||
"ram": 256,
|
||||
"usage": "",
|
||||
"vm_directory": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpqqnauky9/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/qemu/84777300-eef4-4a3a-9135-d7009bdb0722",
|
||||
"vm_id": "84777300-eef4-4a3a-9135-d7009bdb0722"
|
||||
}
|
30
docs/api/examples/get_projectsprojectidvirtualboxvmsvmid.txt
Normal file
30
docs/api/examples/get_projectsprojectidvirtualboxvmsvmid.txt
Normal file
@ -0,0 +1,30 @@
|
||||
curl -i -X GET 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/63b9b470-5a07-4cfe-b9d5-ae5d5518b988'
|
||||
|
||||
GET /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/63b9b470-5a07-4cfe-b9d5-ae5d5518b988 HTTP/1.1
|
||||
|
||||
|
||||
|
||||
HTTP/1.1 200
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 415
|
||||
CONTENT-TYPE: application/json
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}/virtualbox/vms/{vm_id}
|
||||
|
||||
{
|
||||
"acpi_shutdown": false,
|
||||
"adapter_type": "Intel PRO/1000 MT Desktop (82540EM)",
|
||||
"adapters": 0,
|
||||
"console": 2002,
|
||||
"enable_remote_console": false,
|
||||
"headless": false,
|
||||
"name": "VMTEST",
|
||||
"project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
|
||||
"ram": 0,
|
||||
"use_any_adapter": false,
|
||||
"vm_directory": null,
|
||||
"vm_id": "63b9b470-5a07-4cfe-b9d5-ae5d5518b988",
|
||||
"vmname": "VMTEST"
|
||||
}
|
25
docs/api/examples/get_projectsprojectidvpcsvmsvmid.txt
Normal file
25
docs/api/examples/get_projectsprojectidvpcsvmsvmid.txt
Normal file
@ -0,0 +1,25 @@
|
||||
curl -i -X GET 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/7e24fcc2-e38c-43e8-a7bb-fc22d7b91547'
|
||||
|
||||
GET /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/7e24fcc2-e38c-43e8-a7bb-fc22d7b91547 HTTP/1.1
|
||||
|
||||
|
||||
|
||||
HTTP/1.1 200
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 422
|
||||
CONTENT-TYPE: application/json
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}/vpcs/vms/{vm_id}
|
||||
|
||||
{
|
||||
"console": 2010,
|
||||
"name": "PC TEST 1",
|
||||
"project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
|
||||
"startup_script": null,
|
||||
"startup_script_path": null,
|
||||
"status": "stopped",
|
||||
"vm_directory": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpqqnauky9/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/vpcs/7e24fcc2-e38c-43e8-a7bb-fc22d7b91547",
|
||||
"vm_id": "7e24fcc2-e38c-43e8-a7bb-fc22d7b91547"
|
||||
}
|
33
docs/api/examples/get_qemubinaries.txt
Normal file
33
docs/api/examples/get_qemubinaries.txt
Normal file
@ -0,0 +1,33 @@
|
||||
curl -i -X GET 'http://localhost:8000/v1/qemu/binaries' -d '{"archs": ["i386"]}'
|
||||
|
||||
GET /v1/qemu/binaries HTTP/1.1
|
||||
{
|
||||
"archs": [
|
||||
"i386"
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
HTTP/1.1 200
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 212
|
||||
CONTENT-TYPE: application/json
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/qemu/binaries
|
||||
|
||||
[
|
||||
{
|
||||
"path": "/tmp/x86_64",
|
||||
"version": "2.2.0"
|
||||
},
|
||||
{
|
||||
"path": "/tmp/alpha",
|
||||
"version": "2.1.0"
|
||||
},
|
||||
{
|
||||
"path": "/tmp/i386",
|
||||
"version": "2.1.0"
|
||||
}
|
||||
]
|
20
docs/api/examples/get_qemucapabilities.txt
Normal file
20
docs/api/examples/get_qemucapabilities.txt
Normal file
@ -0,0 +1,20 @@
|
||||
curl -i -X GET 'http://localhost:8000/v1/qemu/capabilities'
|
||||
|
||||
GET /v1/qemu/capabilities HTTP/1.1
|
||||
|
||||
|
||||
|
||||
HTTP/1.1 200
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 39
|
||||
CONTENT-TYPE: application/json
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/qemu/capabilities
|
||||
|
||||
{
|
||||
"kvm": [
|
||||
"x86_64"
|
||||
]
|
||||
}
|
19
docs/api/examples/get_version.txt
Normal file
19
docs/api/examples/get_version.txt
Normal file
@ -0,0 +1,19 @@
|
||||
curl -i -X GET 'http://localhost:8000/v1/version'
|
||||
|
||||
GET /v1/version HTTP/1.1
|
||||
|
||||
|
||||
|
||||
HTTP/1.1 200
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 50
|
||||
CONTENT-TYPE: application/json
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/version
|
||||
|
||||
{
|
||||
"local": true,
|
||||
"version": "1.4.0dev13"
|
||||
}
|
14
docs/api/examples/post_configreload.txt
Normal file
14
docs/api/examples/post_configreload.txt
Normal file
@ -0,0 +1,14 @@
|
||||
curl -i -X POST 'http://localhost:8000/v1/config/reload' -d '{}'
|
||||
|
||||
POST /v1/config/reload HTTP/1.1
|
||||
{}
|
||||
|
||||
|
||||
HTTP/1.1 201
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 0
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/config/reload
|
||||
|
24
docs/api/examples/post_projects.txt
Normal file
24
docs/api/examples/post_projects.txt
Normal file
@ -0,0 +1,24 @@
|
||||
curl -i -X POST 'http://localhost:8000/v1/projects' -d '{"name": "test"}'
|
||||
|
||||
POST /v1/projects HTTP/1.1
|
||||
{
|
||||
"name": "test"
|
||||
}
|
||||
|
||||
|
||||
HTTP/1.1 201
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 297
|
||||
CONTENT-TYPE: application/json
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects
|
||||
|
||||
{
|
||||
"location": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpp319gdgn",
|
||||
"name": "test",
|
||||
"path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpp319gdgn/054e6ecb-1e9d-4c74-ad08-1209264bd96d",
|
||||
"project_id": "054e6ecb-1e9d-4c74-ad08-1209264bd96d",
|
||||
"temporary": false
|
||||
}
|
14
docs/api/examples/post_projectsprojectidclose.txt
Normal file
14
docs/api/examples/post_projectsprojectidclose.txt
Normal file
@ -0,0 +1,14 @@
|
||||
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/close' -d '{}'
|
||||
|
||||
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/close HTTP/1.1
|
||||
{}
|
||||
|
||||
|
||||
HTTP/1.1 204
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 0
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}/close
|
||||
|
14
docs/api/examples/post_projectsprojectidcommit.txt
Normal file
14
docs/api/examples/post_projectsprojectidcommit.txt
Normal file
@ -0,0 +1,14 @@
|
||||
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/commit' -d '{}'
|
||||
|
||||
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/commit HTTP/1.1
|
||||
{}
|
||||
|
||||
|
||||
HTTP/1.1 204
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 0
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}/commit
|
||||
|
38
docs/api/examples/post_projectsprojectidiouvms.txt
Normal file
38
docs/api/examples/post_projectsprojectidiouvms.txt
Normal file
@ -0,0 +1,38 @@
|
||||
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms' -d '{"name": "PC TEST 1", "path": "iou.bin", "startup_config_content": "hostname test", "vm_id": "afa904bc-8968-4e7c-87b6-11d92174f1e6"}'
|
||||
|
||||
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms HTTP/1.1
|
||||
{
|
||||
"name": "PC TEST 1",
|
||||
"path": "iou.bin",
|
||||
"startup_config_content": "hostname test",
|
||||
"vm_id": "afa904bc-8968-4e7c-87b6-11d92174f1e6"
|
||||
}
|
||||
|
||||
|
||||
HTTP/1.1 201
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 626
|
||||
CONTENT-TYPE: application/json
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}/iou/vms
|
||||
|
||||
{
|
||||
"console": 2001,
|
||||
"ethernet_adapters": 2,
|
||||
"iourc_path": null,
|
||||
"l1_keepalives": false,
|
||||
"md5sum": null,
|
||||
"name": "PC TEST 1",
|
||||
"nvram": 128,
|
||||
"path": "iou.bin",
|
||||
"private_config": null,
|
||||
"project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
|
||||
"ram": 256,
|
||||
"serial_adapters": 2,
|
||||
"startup_config": "startup-config.cfg",
|
||||
"use_default_iou_values": true,
|
||||
"vm_directory": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmp2yt9sd1l/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/iou/afa904bc-8968-4e7c-87b6-11d92174f1e6",
|
||||
"vm_id": "afa904bc-8968-4e7c-87b6-11d92174f1e6"
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/eea449ce-e25b-4beb-b50f-fcd77241a97b/adapters/1/ports/0/nio' -d '{"ethernet_device": "bridge0", "type": "nio_generic_ethernet"}'
|
||||
|
||||
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/eea449ce-e25b-4beb-b50f-fcd77241a97b/adapters/1/ports/0/nio HTTP/1.1
|
||||
{
|
||||
"ethernet_device": "bridge0",
|
||||
"type": "nio_generic_ethernet"
|
||||
}
|
||||
|
||||
|
||||
HTTP/1.1 201
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 72
|
||||
CONTENT-TYPE: application/json
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}/iou/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
|
||||
|
||||
{
|
||||
"ethernet_device": "bridge0",
|
||||
"type": "nio_generic_ethernet"
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/14a4f240-54e7-47f7-b9e7-3640528415fe/adapters/0/ports/0/start_capture' -d '{"capture_file_name": "test.pcap", "data_link_type": "DLT_EN10MB"}'
|
||||
|
||||
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/14a4f240-54e7-47f7-b9e7-3640528415fe/adapters/0/ports/0/start_capture HTTP/1.1
|
||||
{
|
||||
"capture_file_name": "test.pcap",
|
||||
"data_link_type": "DLT_EN10MB"
|
||||
}
|
||||
|
||||
|
||||
HTTP/1.1 200
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 158
|
||||
CONTENT-TYPE: application/json
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}/iou/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/start_capture
|
||||
|
||||
{
|
||||
"pcap_file_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmp2yt9sd1l/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/captures/test.pcap"
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/992e1579-2232-4aac-93ef-970c3bb67966/adapters/0/ports/0/stop_capture' -d '{}'
|
||||
|
||||
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/992e1579-2232-4aac-93ef-970c3bb67966/adapters/0/ports/0/stop_capture HTTP/1.1
|
||||
{}
|
||||
|
||||
|
||||
HTTP/1.1 204
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 0
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}/iou/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/stop_capture
|
||||
|
14
docs/api/examples/post_projectsprojectidiouvmsvmidreload.txt
Normal file
14
docs/api/examples/post_projectsprojectidiouvmsvmidreload.txt
Normal file
@ -0,0 +1,14 @@
|
||||
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/7f23517b-b45e-4e7b-b908-c501c36abe16/reload' -d '{}'
|
||||
|
||||
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/7f23517b-b45e-4e7b-b908-c501c36abe16/reload HTTP/1.1
|
||||
{}
|
||||
|
||||
|
||||
HTTP/1.1 204
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 0
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}/iou/vms/{vm_id}/reload
|
||||
|
16
docs/api/examples/post_projectsprojectidiouvmsvmidstart.txt
Normal file
16
docs/api/examples/post_projectsprojectidiouvmsvmidstart.txt
Normal file
@ -0,0 +1,16 @@
|
||||
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/2923f599-894a-4b18-a9eb-17a389298f84/start' -d '{"iourc_content": "test"}'
|
||||
|
||||
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/2923f599-894a-4b18-a9eb-17a389298f84/start HTTP/1.1
|
||||
{
|
||||
"iourc_content": "test"
|
||||
}
|
||||
|
||||
|
||||
HTTP/1.1 204
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 0
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}/iou/vms/{vm_id}/start
|
||||
|
14
docs/api/examples/post_projectsprojectidiouvmsvmidstop.txt
Normal file
14
docs/api/examples/post_projectsprojectidiouvmsvmidstop.txt
Normal file
@ -0,0 +1,14 @@
|
||||
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/ff05b41f-cd2b-4b33-90be-9362430b68ae/stop' -d '{}'
|
||||
|
||||
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/ff05b41f-cd2b-4b33-90be-9362430b68ae/stop HTTP/1.1
|
||||
{}
|
||||
|
||||
|
||||
HTTP/1.1 204
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 0
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}/iou/vms/{vm_id}/stop
|
||||
|
18
docs/api/examples/post_projectsprojectidportsudp.txt
Normal file
18
docs/api/examples/post_projectsprojectidportsudp.txt
Normal file
@ -0,0 +1,18 @@
|
||||
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/ports/udp' -d '{}'
|
||||
|
||||
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/ports/udp HTTP/1.1
|
||||
{}
|
||||
|
||||
|
||||
HTTP/1.1 201
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 25
|
||||
CONTENT-TYPE: application/json
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}/ports/udp
|
||||
|
||||
{
|
||||
"udp_port": 10000
|
||||
}
|
61
docs/api/examples/post_projectsprojectidqemuvms.txt
Normal file
61
docs/api/examples/post_projectsprojectidqemuvms.txt
Normal file
@ -0,0 +1,61 @@
|
||||
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms' -d '{"hda_disk_image": "linux.img", "name": "PC TEST 1", "qemu_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmph3pfurip/qemu-system-x86_64", "ram": 1024}'
|
||||
|
||||
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms HTTP/1.1
|
||||
{
|
||||
"hda_disk_image": "linux.img",
|
||||
"name": "PC TEST 1",
|
||||
"qemu_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmph3pfurip/qemu-system-x86_64",
|
||||
"ram": 1024
|
||||
}
|
||||
|
||||
|
||||
HTTP/1.1 201
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 1363
|
||||
CONTENT-TYPE: application/json
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}/qemu/vms
|
||||
|
||||
{
|
||||
"acpi_shutdown": false,
|
||||
"adapter_type": "e1000",
|
||||
"adapters": 1,
|
||||
"boot_priority": "c",
|
||||
"cdrom_image": "",
|
||||
"cdrom_image_md5sum": null,
|
||||
"console": 2001,
|
||||
"console_type": "telnet",
|
||||
"cpu_throttling": 0,
|
||||
"cpus": 1,
|
||||
"hda_disk_image": "linux.img",
|
||||
"hda_disk_image_md5sum": null,
|
||||
"hda_disk_interface": "ide",
|
||||
"hdb_disk_image": "",
|
||||
"hdb_disk_image_md5sum": null,
|
||||
"hdb_disk_interface": "ide",
|
||||
"hdc_disk_image": "",
|
||||
"hdc_disk_image_md5sum": null,
|
||||
"hdc_disk_interface": "ide",
|
||||
"hdd_disk_image": "",
|
||||
"hdd_disk_image_md5sum": null,
|
||||
"hdd_disk_interface": "ide",
|
||||
"initrd": "",
|
||||
"initrd_md5sum": null,
|
||||
"kernel_command_line": "",
|
||||
"kernel_image": "",
|
||||
"kernel_image_md5sum": null,
|
||||
"legacy_networking": false,
|
||||
"mac_address": "00:00:ab:50:58:00",
|
||||
"name": "PC TEST 1",
|
||||
"options": "",
|
||||
"platform": "x86_64",
|
||||
"process_priority": "low",
|
||||
"project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
|
||||
"qemu_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmph3pfurip/qemu-system-x86_64",
|
||||
"ram": 1024,
|
||||
"usage": "",
|
||||
"vm_directory": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpqqnauky9/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/qemu/b949f2e2-d338-4b51-aea9-270196ed5058",
|
||||
"vm_id": "b949f2e2-d338-4b51-aea9-270196ed5058"
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/82435d91-3cb5-4a44-abff-34a4ae46b24f/adapters/1/ports/0/nio' -d '{"ethernet_device": "eth0", "type": "nio_generic_ethernet"}'
|
||||
|
||||
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/82435d91-3cb5-4a44-abff-34a4ae46b24f/adapters/1/ports/0/nio HTTP/1.1
|
||||
{
|
||||
"ethernet_device": "eth0",
|
||||
"type": "nio_generic_ethernet"
|
||||
}
|
||||
|
||||
|
||||
HTTP/1.1 409
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 89
|
||||
CONTENT-TYPE: application/json
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}/qemu/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
|
||||
|
||||
{
|
||||
"message": "NIO of type nio_generic_ethernet is not supported",
|
||||
"status": 409
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/3275bdce-9b75-445f-8168-0103cd524182/reload' -d '{}'
|
||||
|
||||
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/3275bdce-9b75-445f-8168-0103cd524182/reload HTTP/1.1
|
||||
{}
|
||||
|
||||
|
||||
HTTP/1.1 204
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 0
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}/qemu/vms/{vm_id}/reload
|
||||
|
@ -0,0 +1,14 @@
|
||||
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/2d03502f-6b3f-4551-b924-b74fd5d6cdf5/resume' -d '{}'
|
||||
|
||||
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/2d03502f-6b3f-4551-b924-b74fd5d6cdf5/resume HTTP/1.1
|
||||
{}
|
||||
|
||||
|
||||
HTTP/1.1 204
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 0
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}/qemu/vms/{vm_id}/resume
|
||||
|
14
docs/api/examples/post_projectsprojectidqemuvmsvmidstart.txt
Normal file
14
docs/api/examples/post_projectsprojectidqemuvmsvmidstart.txt
Normal file
@ -0,0 +1,14 @@
|
||||
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/04afa03a-3d9b-4aa7-945f-8f3077b6790e/start' -d '{}'
|
||||
|
||||
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/04afa03a-3d9b-4aa7-945f-8f3077b6790e/start HTTP/1.1
|
||||
{}
|
||||
|
||||
|
||||
HTTP/1.1 204
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 0
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}/qemu/vms/{vm_id}/start
|
||||
|
14
docs/api/examples/post_projectsprojectidqemuvmsvmidstop.txt
Normal file
14
docs/api/examples/post_projectsprojectidqemuvmsvmidstop.txt
Normal file
@ -0,0 +1,14 @@
|
||||
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/f5bfbadc-9a09-4090-a624-89be68858746/stop' -d '{}'
|
||||
|
||||
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/f5bfbadc-9a09-4090-a624-89be68858746/stop HTTP/1.1
|
||||
{}
|
||||
|
||||
|
||||
HTTP/1.1 204
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 0
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}/qemu/vms/{vm_id}/stop
|
||||
|
@ -0,0 +1,14 @@
|
||||
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/bb00b1e0-f19d-4ce8-b99a-82c1518fa33e/suspend' -d '{}'
|
||||
|
||||
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/bb00b1e0-f19d-4ce8-b99a-82c1518fa33e/suspend HTTP/1.1
|
||||
{}
|
||||
|
||||
|
||||
HTTP/1.1 204
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 0
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}/qemu/vms/{vm_id}/suspend
|
||||
|
34
docs/api/examples/post_projectsprojectidvirtualboxvms.txt
Normal file
34
docs/api/examples/post_projectsprojectidvirtualboxvms.txt
Normal file
@ -0,0 +1,34 @@
|
||||
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms' -d '{"linked_clone": false, "name": "VM1", "vmname": "VM1"}'
|
||||
|
||||
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms HTTP/1.1
|
||||
{
|
||||
"linked_clone": false,
|
||||
"name": "VM1",
|
||||
"vmname": "VM1"
|
||||
}
|
||||
|
||||
|
||||
HTTP/1.1 201
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 409
|
||||
CONTENT-TYPE: application/json
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}/virtualbox/vms
|
||||
|
||||
{
|
||||
"acpi_shutdown": false,
|
||||
"adapter_type": "Intel PRO/1000 MT Desktop (82540EM)",
|
||||
"adapters": 0,
|
||||
"console": 2001,
|
||||
"enable_remote_console": false,
|
||||
"headless": false,
|
||||
"name": "VM1",
|
||||
"project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
|
||||
"ram": 0,
|
||||
"use_any_adapter": false,
|
||||
"vm_directory": null,
|
||||
"vm_id": "39cc5964-d0be-487b-9f0c-8fbea600e452",
|
||||
"vmname": "VM1"
|
||||
}
|
@ -0,0 +1,26 @@
|
||||
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/556aba72-c19a-4fc3-a350-9454791687f4/adapters/0/ports/0/nio' -d '{"lport": 4242, "rhost": "127.0.0.1", "rport": 4343, "type": "nio_udp"}'
|
||||
|
||||
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/556aba72-c19a-4fc3-a350-9454791687f4/adapters/0/ports/0/nio HTTP/1.1
|
||||
{
|
||||
"lport": 4242,
|
||||
"rhost": "127.0.0.1",
|
||||
"rport": 4343,
|
||||
"type": "nio_udp"
|
||||
}
|
||||
|
||||
|
||||
HTTP/1.1 201
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 89
|
||||
CONTENT-TYPE: application/json
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}/virtualbox/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
|
||||
|
||||
{
|
||||
"lport": 4242,
|
||||
"rhost": "127.0.0.1",
|
||||
"rport": 4343,
|
||||
"type": "nio_udp"
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/1a517572-9b86-441a-8347-1d28b01d9a41/reload' -d '{}'
|
||||
|
||||
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/1a517572-9b86-441a-8347-1d28b01d9a41/reload HTTP/1.1
|
||||
{}
|
||||
|
||||
|
||||
HTTP/1.1 204
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 0
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}/virtualbox/vms/{vm_id}/reload
|
||||
|
@ -0,0 +1,14 @@
|
||||
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/7f5648e4-0ce8-49b3-b470-f2b821a5fe3e/resume' -d '{}'
|
||||
|
||||
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/7f5648e4-0ce8-49b3-b470-f2b821a5fe3e/resume HTTP/1.1
|
||||
{}
|
||||
|
||||
|
||||
HTTP/1.1 204
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 0
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}/virtualbox/vms/{vm_id}/resume
|
||||
|
@ -0,0 +1,14 @@
|
||||
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/ee1fef8f-cbe1-4590-8c47-fbd12f7f6beb/start' -d '{}'
|
||||
|
||||
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/ee1fef8f-cbe1-4590-8c47-fbd12f7f6beb/start HTTP/1.1
|
||||
{}
|
||||
|
||||
|
||||
HTTP/1.1 204
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 0
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}/virtualbox/vms/{vm_id}/start
|
||||
|
@ -0,0 +1,14 @@
|
||||
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/5e8543c3-45a7-4668-824f-01eaeb848898/stop' -d '{}'
|
||||
|
||||
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/5e8543c3-45a7-4668-824f-01eaeb848898/stop HTTP/1.1
|
||||
{}
|
||||
|
||||
|
||||
HTTP/1.1 204
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 0
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}/virtualbox/vms/{vm_id}/stop
|
||||
|
@ -0,0 +1,14 @@
|
||||
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/95f620da-c0e5-4404-81fc-10f3e18786cb/suspend' -d '{}'
|
||||
|
||||
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/95f620da-c0e5-4404-81fc-10f3e18786cb/suspend HTTP/1.1
|
||||
{}
|
||||
|
||||
|
||||
HTTP/1.1 204
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 0
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}/virtualbox/vms/{vm_id}/suspend
|
||||
|
27
docs/api/examples/post_projectsprojectidvpcsvms.txt
Normal file
27
docs/api/examples/post_projectsprojectidvpcsvms.txt
Normal file
@ -0,0 +1,27 @@
|
||||
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms' -d '{"name": "PC TEST 1"}'
|
||||
|
||||
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms HTTP/1.1
|
||||
{
|
||||
"name": "PC TEST 1"
|
||||
}
|
||||
|
||||
|
||||
HTTP/1.1 201
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 422
|
||||
CONTENT-TYPE: application/json
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}/vpcs/vms
|
||||
|
||||
{
|
||||
"console": 2010,
|
||||
"name": "PC TEST 1",
|
||||
"project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
|
||||
"startup_script": null,
|
||||
"startup_script_path": null,
|
||||
"status": "stopped",
|
||||
"vm_directory": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpqqnauky9/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/vpcs/d1808514-893b-4aa5-86c2-c4dea88ff895",
|
||||
"vm_id": "d1808514-893b-4aa5-86c2-c4dea88ff895"
|
||||
}
|
@ -0,0 +1,26 @@
|
||||
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/fbf2e4d7-d60e-4e03-95bc-1bd53b74689a/adapters/0/ports/0/nio' -d '{"lport": 4242, "rhost": "127.0.0.1", "rport": 4343, "type": "nio_udp"}'
|
||||
|
||||
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/fbf2e4d7-d60e-4e03-95bc-1bd53b74689a/adapters/0/ports/0/nio HTTP/1.1
|
||||
{
|
||||
"lport": 4242,
|
||||
"rhost": "127.0.0.1",
|
||||
"rport": 4343,
|
||||
"type": "nio_udp"
|
||||
}
|
||||
|
||||
|
||||
HTTP/1.1 201
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 89
|
||||
CONTENT-TYPE: application/json
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}/vpcs/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
|
||||
|
||||
{
|
||||
"lport": 4242,
|
||||
"rhost": "127.0.0.1",
|
||||
"rport": 4343,
|
||||
"type": "nio_udp"
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/1a1b95de-cc91-4a90-870b-5c7c8965eb5d/reload' -d '{}'
|
||||
|
||||
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/1a1b95de-cc91-4a90-870b-5c7c8965eb5d/reload HTTP/1.1
|
||||
{}
|
||||
|
||||
|
||||
HTTP/1.1 204
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 0
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}/vpcs/vms/{vm_id}/reload
|
||||
|
14
docs/api/examples/post_projectsprojectidvpcsvmsvmidstart.txt
Normal file
14
docs/api/examples/post_projectsprojectidvpcsvmsvmidstart.txt
Normal file
@ -0,0 +1,14 @@
|
||||
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/184c6dcc-a8fd-4cc9-b333-86cc24f2e98e/start' -d '{}'
|
||||
|
||||
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/184c6dcc-a8fd-4cc9-b333-86cc24f2e98e/start HTTP/1.1
|
||||
{}
|
||||
|
||||
|
||||
HTTP/1.1 204
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 0
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}/vpcs/vms/{vm_id}/start
|
||||
|
14
docs/api/examples/post_projectsprojectidvpcsvmsvmidstop.txt
Normal file
14
docs/api/examples/post_projectsprojectidvpcsvmsvmidstop.txt
Normal file
@ -0,0 +1,14 @@
|
||||
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/bc34aac0-6c5e-4b91-b2ea-47b76d4b26f1/stop' -d '{}'
|
||||
|
||||
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/bc34aac0-6c5e-4b91-b2ea-47b76d4b26f1/stop HTTP/1.1
|
||||
{}
|
||||
|
||||
|
||||
HTTP/1.1 204
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 0
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}/vpcs/vms/{vm_id}/stop
|
||||
|
23
docs/api/examples/post_qemuimg.txt
Normal file
23
docs/api/examples/post_qemuimg.txt
Normal file
@ -0,0 +1,23 @@
|
||||
curl -i -X POST 'http://localhost:8000/v1/qemu/img' -d '{"cluster_size": 64, "format": "qcow2", "lazy_refcounts": "off", "path": "/tmp/hda.qcow2", "preallocation": "metadata", "qemu_img": "/tmp/qemu-img", "refcount_bits": 12, "size": 100}'
|
||||
|
||||
POST /v1/qemu/img HTTP/1.1
|
||||
{
|
||||
"cluster_size": 64,
|
||||
"format": "qcow2",
|
||||
"lazy_refcounts": "off",
|
||||
"path": "/tmp/hda.qcow2",
|
||||
"preallocation": "metadata",
|
||||
"qemu_img": "/tmp/qemu-img",
|
||||
"refcount_bits": 12,
|
||||
"size": 100
|
||||
}
|
||||
|
||||
|
||||
HTTP/1.1 201
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 0
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/qemu/img
|
||||
|
20
docs/api/examples/post_version.txt
Normal file
20
docs/api/examples/post_version.txt
Normal file
@ -0,0 +1,20 @@
|
||||
curl -i -X POST 'http://localhost:8000/v1/version' -d '{"version": "1.4.0dev13"}'
|
||||
|
||||
POST /v1/version HTTP/1.1
|
||||
{
|
||||
"version": "1.4.0dev13"
|
||||
}
|
||||
|
||||
|
||||
HTTP/1.1 200
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 31
|
||||
CONTENT-TYPE: application/json
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/version
|
||||
|
||||
{
|
||||
"version": "1.4.0dev13"
|
||||
}
|
22
docs/api/examples/put_projectsprojectid.txt
Normal file
22
docs/api/examples/put_projectsprojectid.txt
Normal file
@ -0,0 +1,22 @@
|
||||
curl -i -X PUT 'http://localhost:8000/v1/projects/9d7dccbb-0fc0-40d0-9420-912733dcbf74' -d '{"name": "second_name", "path": "/private/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/pytest-of-noplay/pytest-110/test_update_path_project_non_l0"}'
|
||||
|
||||
PUT /v1/projects/9d7dccbb-0fc0-40d0-9420-912733dcbf74 HTTP/1.1
|
||||
{
|
||||
"name": "second_name",
|
||||
"path": "/private/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/pytest-of-noplay/pytest-110/test_update_path_project_non_l0"
|
||||
}
|
||||
|
||||
|
||||
HTTP/1.1 403
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 100
|
||||
CONTENT-TYPE: application/json
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}
|
||||
|
||||
{
|
||||
"message": "You are not allowed to modify the project directory location",
|
||||
"status": 403
|
||||
}
|
44
docs/api/examples/put_projectsprojectidiouvmsvmid.txt
Normal file
44
docs/api/examples/put_projectsprojectidiouvmsvmid.txt
Normal file
@ -0,0 +1,44 @@
|
||||
curl -i -X PUT 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/6438493a-152d-4cb0-b8d2-fcfe1f6bf540' -d '{"console": 2002, "ethernet_adapters": 4, "iourc_content": "test", "l1_keepalives": true, "name": "test", "nvram": 2048, "ram": 512, "serial_adapters": 0, "startup_config_content": "hostname test", "use_default_iou_values": true}'
|
||||
|
||||
PUT /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/6438493a-152d-4cb0-b8d2-fcfe1f6bf540 HTTP/1.1
|
||||
{
|
||||
"console": 2002,
|
||||
"ethernet_adapters": 4,
|
||||
"iourc_content": "test",
|
||||
"l1_keepalives": true,
|
||||
"name": "test",
|
||||
"nvram": 2048,
|
||||
"ram": 512,
|
||||
"serial_adapters": 0,
|
||||
"startup_config_content": "hostname test",
|
||||
"use_default_iou_values": true
|
||||
}
|
||||
|
||||
|
||||
HTTP/1.1 200
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 685
|
||||
CONTENT-TYPE: application/json
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}/iou/vms/{vm_id}
|
||||
|
||||
{
|
||||
"console": 2002,
|
||||
"ethernet_adapters": 4,
|
||||
"iourc_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpyrljan4a/iourc",
|
||||
"l1_keepalives": true,
|
||||
"md5sum": null,
|
||||
"name": "test",
|
||||
"nvram": 2048,
|
||||
"path": "iou.bin",
|
||||
"private_config": null,
|
||||
"project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
|
||||
"ram": 512,
|
||||
"serial_adapters": 0,
|
||||
"startup_config": "startup-config.cfg",
|
||||
"use_default_iou_values": true,
|
||||
"vm_directory": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmp2yt9sd1l/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/iou/6438493a-152d-4cb0-b8d2-fcfe1f6bf540",
|
||||
"vm_id": "6438493a-152d-4cb0-b8d2-fcfe1f6bf540"
|
||||
}
|
61
docs/api/examples/put_projectsprojectidqemuvmsvmid.txt
Normal file
61
docs/api/examples/put_projectsprojectidqemuvmsvmid.txt
Normal file
@ -0,0 +1,61 @@
|
||||
curl -i -X PUT 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/578b6391-e461-4f17-86f6-dd556d2f4dde' -d '{"console": 2002, "hdb_disk_image": "linux.img", "name": "test", "ram": 1024}'
|
||||
|
||||
PUT /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/578b6391-e461-4f17-86f6-dd556d2f4dde HTTP/1.1
|
||||
{
|
||||
"console": 2002,
|
||||
"hdb_disk_image": "linux.img",
|
||||
"name": "test",
|
||||
"ram": 1024
|
||||
}
|
||||
|
||||
|
||||
HTTP/1.1 200
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 1358
|
||||
CONTENT-TYPE: application/json
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}/qemu/vms/{vm_id}
|
||||
|
||||
{
|
||||
"acpi_shutdown": false,
|
||||
"adapter_type": "e1000",
|
||||
"adapters": 1,
|
||||
"boot_priority": "c",
|
||||
"cdrom_image": "",
|
||||
"cdrom_image_md5sum": null,
|
||||
"console": 2002,
|
||||
"console_type": "telnet",
|
||||
"cpu_throttling": 0,
|
||||
"cpus": 1,
|
||||
"hda_disk_image": "",
|
||||
"hda_disk_image_md5sum": null,
|
||||
"hda_disk_interface": "ide",
|
||||
"hdb_disk_image": "linux.img",
|
||||
"hdb_disk_image_md5sum": null,
|
||||
"hdb_disk_interface": "ide",
|
||||
"hdc_disk_image": "",
|
||||
"hdc_disk_image_md5sum": null,
|
||||
"hdc_disk_interface": "ide",
|
||||
"hdd_disk_image": "",
|
||||
"hdd_disk_image_md5sum": null,
|
||||
"hdd_disk_interface": "ide",
|
||||
"initrd": "",
|
||||
"initrd_md5sum": null,
|
||||
"kernel_command_line": "",
|
||||
"kernel_image": "",
|
||||
"kernel_image_md5sum": null,
|
||||
"legacy_networking": false,
|
||||
"mac_address": "00:00:ab:4d:de:00",
|
||||
"name": "test",
|
||||
"options": "",
|
||||
"platform": "x86_64",
|
||||
"process_priority": "low",
|
||||
"project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
|
||||
"qemu_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmph3pfurip/qemu-system-x86_64",
|
||||
"ram": 1024,
|
||||
"usage": "",
|
||||
"vm_directory": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpqqnauky9/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/qemu/578b6391-e461-4f17-86f6-dd556d2f4dde",
|
||||
"vm_id": "578b6391-e461-4f17-86f6-dd556d2f4dde"
|
||||
}
|
33
docs/api/examples/put_projectsprojectidvirtualboxvmsvmid.txt
Normal file
33
docs/api/examples/put_projectsprojectidvirtualboxvmsvmid.txt
Normal file
@ -0,0 +1,33 @@
|
||||
curl -i -X PUT 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/aa45d68c-c68e-4296-9550-641b522a73c2' -d '{"console": 2011, "name": "test"}'
|
||||
|
||||
PUT /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/aa45d68c-c68e-4296-9550-641b522a73c2 HTTP/1.1
|
||||
{
|
||||
"console": 2011,
|
||||
"name": "test"
|
||||
}
|
||||
|
||||
|
||||
HTTP/1.1 200
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 413
|
||||
CONTENT-TYPE: application/json
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}/virtualbox/vms/{vm_id}
|
||||
|
||||
{
|
||||
"acpi_shutdown": false,
|
||||
"adapter_type": "Intel PRO/1000 MT Desktop (82540EM)",
|
||||
"adapters": 0,
|
||||
"console": 2011,
|
||||
"enable_remote_console": false,
|
||||
"headless": false,
|
||||
"name": "test",
|
||||
"project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
|
||||
"ram": 0,
|
||||
"use_any_adapter": false,
|
||||
"vm_directory": null,
|
||||
"vm_id": "aa45d68c-c68e-4296-9550-641b522a73c2",
|
||||
"vmname": "VMTEST"
|
||||
}
|
29
docs/api/examples/put_projectsprojectidvpcsvmsvmid.txt
Normal file
29
docs/api/examples/put_projectsprojectidvpcsvmsvmid.txt
Normal file
@ -0,0 +1,29 @@
|
||||
curl -i -X PUT 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/608a4cd0-476c-40ba-95db-0c81effc8e9c' -d '{"console": 2012, "name": "test", "startup_script": "ip 192.168.1.1"}'
|
||||
|
||||
PUT /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/608a4cd0-476c-40ba-95db-0c81effc8e9c HTTP/1.1
|
||||
{
|
||||
"console": 2012,
|
||||
"name": "test",
|
||||
"startup_script": "ip 192.168.1.1"
|
||||
}
|
||||
|
||||
|
||||
HTTP/1.1 200
|
||||
ACCESS-CONTROL-ALLOW-ORIGIN: *
|
||||
CONNECTION: keep-alive
|
||||
CONTENT-LENGTH: 438
|
||||
CONTENT-TYPE: application/json
|
||||
DATE: Thu, 08 Jan 2015 16:09:15 GMT
|
||||
SERVER: Python/3.5 GNS3/1.4.0dev13
|
||||
X-ROUTE: /v1/projects/{project_id}/vpcs/vms/{vm_id}
|
||||
|
||||
{
|
||||
"console": 2012,
|
||||
"name": "test",
|
||||
"project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
|
||||
"startup_script": "ip 192.168.1.1",
|
||||
"startup_script_path": "startup.vpc",
|
||||
"status": "stopped",
|
||||
"vm_directory": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpqqnauky9/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/vpcs/608a4cd0-476c-40ba-95db-0c81effc8e9c",
|
||||
"vm_id": "608a4cd0-476c-40ba-95db-0c81effc8e9c"
|
||||
}
|
8
docs/api/v1/config.rst
Normal file
8
docs/api/v1/config.rst
Normal file
@ -0,0 +1,8 @@
|
||||
Config
|
||||
---------------------
|
||||
|
||||
.. toctree::
|
||||
:glob:
|
||||
:maxdepth: 2
|
||||
|
||||
config/*
|
20
docs/api/v1/config/configreload.rst
Normal file
20
docs/api/v1/config/configreload.rst
Normal file
@ -0,0 +1,20 @@
|
||||
/v1/config/reload
|
||||
----------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
.. contents::
|
||||
|
||||
POST /v1/config/reload
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Check if version is the same as the server
|
||||
|
||||
Response status codes
|
||||
**********************
|
||||
- **201**: Config reload
|
||||
- **403**: Config reload refused
|
||||
|
||||
Sample session
|
||||
***************
|
||||
|
||||
|
||||
.. literalinclude:: ../../examples/post_configreload.txt
|
||||
|
8
docs/api/v1/docker.rst
Normal file
8
docs/api/v1/docker.rst
Normal file
@ -0,0 +1,8 @@
|
||||
Docker
|
||||
---------------------
|
||||
|
||||
.. toctree::
|
||||
:glob:
|
||||
:maxdepth: 2
|
||||
|
||||
docker/*
|
13
docs/api/v1/docker/dockerimages.rst
Normal file
13
docs/api/v1/docker/dockerimages.rst
Normal file
@ -0,0 +1,13 @@
|
||||
/v1/docker/images
|
||||
----------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
.. contents::
|
||||
|
||||
GET /v1/docker/images
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Get all available Docker images
|
||||
|
||||
Response status codes
|
||||
**********************
|
||||
- **200**: Success
|
||||
|
49
docs/api/v1/docker/projectsprojectiddockerimages.rst
Normal file
49
docs/api/v1/docker/projectsprojectiddockerimages.rst
Normal file
@ -0,0 +1,49 @@
|
||||
/v1/projects/{project_id}/docker/images
|
||||
----------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
.. contents::
|
||||
|
||||
POST /v1/projects/**{project_id}**/docker/images
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Create a new Docker container
|
||||
|
||||
Parameters
|
||||
**********
|
||||
- **project_id**: UUID for the project
|
||||
|
||||
Response status codes
|
||||
**********************
|
||||
- **400**: Invalid request
|
||||
- **201**: Instance created
|
||||
- **409**: Conflict
|
||||
|
||||
Input
|
||||
*******
|
||||
.. raw:: html
|
||||
|
||||
<table>
|
||||
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
|
||||
<tr><td>adapter_type</td> <td> </td> <td>string</td> <td>Docker adapter type</td> </tr>
|
||||
<tr><td>adapters</td> <td> </td> <td>integer</td> <td>number of adapters</td> </tr>
|
||||
<tr><td>console</td> <td> </td> <td>string</td> <td>console name</td> </tr>
|
||||
<tr><td>imagename</td> <td> </td> <td>string</td> <td>Docker image name</td> </tr>
|
||||
<tr><td>name</td> <td> </td> <td>string</td> <td>Docker container name</td> </tr>
|
||||
<tr><td>startcmd</td> <td> </td> <td>string</td> <td>Docker CMD entry</td> </tr>
|
||||
<tr><td>vm_id</td> <td> </td> <td></td> <td>Docker VM instance identifier</td> </tr>
|
||||
</table>
|
||||
|
||||
Output
|
||||
*******
|
||||
.. raw:: html
|
||||
|
||||
<table>
|
||||
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
|
||||
<tr><td>adapter_type</td> <td> </td> <td>string</td> <td>Docker adapter type</td> </tr>
|
||||
<tr><td>adapters</td> <td> </td> <td>integer</td> <td>number of adapters</td> </tr>
|
||||
<tr><td>cid</td> <td> </td> <td>string</td> <td>Docker container ID</td> </tr>
|
||||
<tr><td>image</td> <td> </td> <td>string</td> <td>Docker image name</td> </tr>
|
||||
<tr><td>name</td> <td> </td> <td>string</td> <td>Docker container name</td> </tr>
|
||||
<tr><td>project_id</td> <td>✔</td> <td>string</td> <td>Project UUID</td> </tr>
|
||||
<tr><td>vm_id</td> <td>✔</td> <td>string</td> <td>Docker container instance UUID</td> </tr>
|
||||
</table>
|
||||
|
20
docs/api/v1/docker/projectsprojectiddockerimagesid.rst
Normal file
20
docs/api/v1/docker/projectsprojectiddockerimagesid.rst
Normal file
@ -0,0 +1,20 @@
|
||||
/v1/projects/{project_id}/docker/images/{id}
|
||||
----------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
.. contents::
|
||||
|
||||
DELETE /v1/projects/**{project_id}**/docker/images/**{id}**
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Delete a Docker container
|
||||
|
||||
Parameters
|
||||
**********
|
||||
- **id**: ID for the container
|
||||
- **project_id**: UUID for the project
|
||||
|
||||
Response status codes
|
||||
**********************
|
||||
- **400**: Invalid request
|
||||
- **404**: Instance doesn't exist
|
||||
- **204**: Instance deleted
|
||||
|
@ -0,0 +1,40 @@
|
||||
/v1/projects/{project_id}/docker/images/{id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
|
||||
----------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
.. contents::
|
||||
|
||||
POST /v1/projects/**{project_id}**/docker/images/**{id}**/adapters/**{adapter_number:\d+}**/ports/**{port_number:\d+}**/nio
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Add a NIO to a Docker container
|
||||
|
||||
Parameters
|
||||
**********
|
||||
- **id**: ID of the container
|
||||
- **adapter_number**: Adapter where the nio should be added
|
||||
- **project_id**: UUID for the project
|
||||
- **port_number**: Port on the adapter
|
||||
|
||||
Response status codes
|
||||
**********************
|
||||
- **400**: Invalid request
|
||||
- **201**: NIO created
|
||||
- **404**: Instance doesn't exist
|
||||
|
||||
|
||||
DELETE /v1/projects/**{project_id}**/docker/images/**{id}**/adapters/**{adapter_number:\d+}**/ports/**{port_number:\d+}**/nio
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Remove a NIO from a Docker container
|
||||
|
||||
Parameters
|
||||
**********
|
||||
- **id**: ID of the container
|
||||
- **adapter_number**: Adapter where the nio should be added
|
||||
- **project_id**: UUID for the project
|
||||
- **port_number**: Port on the adapter
|
||||
|
||||
Response status codes
|
||||
**********************
|
||||
- **400**: Invalid request
|
||||
- **404**: Instance doesn't exist
|
||||
- **204**: NIO deleted
|
||||
|
50
docs/api/v1/docker/projectsprojectiddockerimagesidreload.rst
Normal file
50
docs/api/v1/docker/projectsprojectiddockerimagesidreload.rst
Normal file
@ -0,0 +1,50 @@
|
||||
/v1/projects/{project_id}/docker/images/{id}/reload
|
||||
----------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
.. contents::
|
||||
|
||||
POST /v1/projects/**{project_id}**/docker/images/**{id}**/reload
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Restart a Docker container
|
||||
|
||||
Parameters
|
||||
**********
|
||||
- **id**: ID of the container
|
||||
- **project_id**: UUID of the project
|
||||
|
||||
Response status codes
|
||||
**********************
|
||||
- **400**: Invalid request
|
||||
- **404**: Instance doesn't exist
|
||||
- **204**: Instance restarted
|
||||
|
||||
Input
|
||||
*******
|
||||
.. raw:: html
|
||||
|
||||
<table>
|
||||
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
|
||||
<tr><td>adapter_type</td> <td> </td> <td>string</td> <td>Docker adapter type</td> </tr>
|
||||
<tr><td>adapters</td> <td> </td> <td>integer</td> <td>number of adapters</td> </tr>
|
||||
<tr><td>console</td> <td> </td> <td>string</td> <td>console name</td> </tr>
|
||||
<tr><td>imagename</td> <td> </td> <td>string</td> <td>Docker image name</td> </tr>
|
||||
<tr><td>name</td> <td> </td> <td>string</td> <td>Docker container name</td> </tr>
|
||||
<tr><td>startcmd</td> <td> </td> <td>string</td> <td>Docker CMD entry</td> </tr>
|
||||
<tr><td>vm_id</td> <td> </td> <td></td> <td>Docker VM instance identifier</td> </tr>
|
||||
</table>
|
||||
|
||||
Output
|
||||
*******
|
||||
.. raw:: html
|
||||
|
||||
<table>
|
||||
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
|
||||
<tr><td>adapter_type</td> <td> </td> <td>string</td> <td>Docker adapter type</td> </tr>
|
||||
<tr><td>adapters</td> <td> </td> <td>integer</td> <td>number of adapters</td> </tr>
|
||||
<tr><td>cid</td> <td> </td> <td>string</td> <td>Docker container ID</td> </tr>
|
||||
<tr><td>image</td> <td> </td> <td>string</td> <td>Docker image name</td> </tr>
|
||||
<tr><td>name</td> <td> </td> <td>string</td> <td>Docker container name</td> </tr>
|
||||
<tr><td>project_id</td> <td>✔</td> <td>string</td> <td>Project UUID</td> </tr>
|
||||
<tr><td>vm_id</td> <td>✔</td> <td>string</td> <td>Docker container instance UUID</td> </tr>
|
||||
</table>
|
||||
|
50
docs/api/v1/docker/projectsprojectiddockerimagesidstart.rst
Normal file
50
docs/api/v1/docker/projectsprojectiddockerimagesidstart.rst
Normal file
@ -0,0 +1,50 @@
|
||||
/v1/projects/{project_id}/docker/images/{id}/start
|
||||
----------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
.. contents::
|
||||
|
||||
POST /v1/projects/**{project_id}**/docker/images/**{id}**/start
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Start a Docker container
|
||||
|
||||
Parameters
|
||||
**********
|
||||
- **id**: ID of the container
|
||||
- **project_id**: UUID of the project
|
||||
|
||||
Response status codes
|
||||
**********************
|
||||
- **400**: Invalid request
|
||||
- **404**: Instance doesn't exist
|
||||
- **204**: Instance started
|
||||
|
||||
Input
|
||||
*******
|
||||
.. raw:: html
|
||||
|
||||
<table>
|
||||
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
|
||||
<tr><td>adapter_type</td> <td> </td> <td>string</td> <td>Docker adapter type</td> </tr>
|
||||
<tr><td>adapters</td> <td> </td> <td>integer</td> <td>number of adapters</td> </tr>
|
||||
<tr><td>console</td> <td> </td> <td>string</td> <td>console name</td> </tr>
|
||||
<tr><td>imagename</td> <td> </td> <td>string</td> <td>Docker image name</td> </tr>
|
||||
<tr><td>name</td> <td> </td> <td>string</td> <td>Docker container name</td> </tr>
|
||||
<tr><td>startcmd</td> <td> </td> <td>string</td> <td>Docker CMD entry</td> </tr>
|
||||
<tr><td>vm_id</td> <td> </td> <td></td> <td>Docker VM instance identifier</td> </tr>
|
||||
</table>
|
||||
|
||||
Output
|
||||
*******
|
||||
.. raw:: html
|
||||
|
||||
<table>
|
||||
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
|
||||
<tr><td>adapter_type</td> <td> </td> <td>string</td> <td>Docker adapter type</td> </tr>
|
||||
<tr><td>adapters</td> <td> </td> <td>integer</td> <td>number of adapters</td> </tr>
|
||||
<tr><td>cid</td> <td> </td> <td>string</td> <td>Docker container ID</td> </tr>
|
||||
<tr><td>image</td> <td> </td> <td>string</td> <td>Docker image name</td> </tr>
|
||||
<tr><td>name</td> <td> </td> <td>string</td> <td>Docker container name</td> </tr>
|
||||
<tr><td>project_id</td> <td>✔</td> <td>string</td> <td>Project UUID</td> </tr>
|
||||
<tr><td>vm_id</td> <td>✔</td> <td>string</td> <td>Docker container instance UUID</td> </tr>
|
||||
</table>
|
||||
|
50
docs/api/v1/docker/projectsprojectiddockerimagesidstop.rst
Normal file
50
docs/api/v1/docker/projectsprojectiddockerimagesidstop.rst
Normal file
@ -0,0 +1,50 @@
|
||||
/v1/projects/{project_id}/docker/images/{id}/stop
|
||||
----------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
.. contents::
|
||||
|
||||
POST /v1/projects/**{project_id}**/docker/images/**{id}**/stop
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Stop a Docker container
|
||||
|
||||
Parameters
|
||||
**********
|
||||
- **id**: ID of the container
|
||||
- **project_id**: UUID of the project
|
||||
|
||||
Response status codes
|
||||
**********************
|
||||
- **400**: Invalid request
|
||||
- **404**: Instance doesn't exist
|
||||
- **204**: Instance stopped
|
||||
|
||||
Input
|
||||
*******
|
||||
.. raw:: html
|
||||
|
||||
<table>
|
||||
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
|
||||
<tr><td>adapter_type</td> <td> </td> <td>string</td> <td>Docker adapter type</td> </tr>
|
||||
<tr><td>adapters</td> <td> </td> <td>integer</td> <td>number of adapters</td> </tr>
|
||||
<tr><td>console</td> <td> </td> <td>string</td> <td>console name</td> </tr>
|
||||
<tr><td>imagename</td> <td> </td> <td>string</td> <td>Docker image name</td> </tr>
|
||||
<tr><td>name</td> <td> </td> <td>string</td> <td>Docker container name</td> </tr>
|
||||
<tr><td>startcmd</td> <td> </td> <td>string</td> <td>Docker CMD entry</td> </tr>
|
||||
<tr><td>vm_id</td> <td> </td> <td></td> <td>Docker VM instance identifier</td> </tr>
|
||||
</table>
|
||||
|
||||
Output
|
||||
*******
|
||||
.. raw:: html
|
||||
|
||||
<table>
|
||||
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
|
||||
<tr><td>adapter_type</td> <td> </td> <td>string</td> <td>Docker adapter type</td> </tr>
|
||||
<tr><td>adapters</td> <td> </td> <td>integer</td> <td>number of adapters</td> </tr>
|
||||
<tr><td>cid</td> <td> </td> <td>string</td> <td>Docker container ID</td> </tr>
|
||||
<tr><td>image</td> <td> </td> <td>string</td> <td>Docker image name</td> </tr>
|
||||
<tr><td>name</td> <td> </td> <td>string</td> <td>Docker container name</td> </tr>
|
||||
<tr><td>project_id</td> <td>✔</td> <td>string</td> <td>Project UUID</td> </tr>
|
||||
<tr><td>vm_id</td> <td>✔</td> <td>string</td> <td>Docker container instance UUID</td> </tr>
|
||||
</table>
|
||||
|
@ -0,0 +1,50 @@
|
||||
/v1/projects/{project_id}/docker/images/{id}/suspend
|
||||
----------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
.. contents::
|
||||
|
||||
POST /v1/projects/**{project_id}**/docker/images/**{id}**/suspend
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Pause a Docker container
|
||||
|
||||
Parameters
|
||||
**********
|
||||
- **id**: ID of the container
|
||||
- **project_id**: UUID of the project
|
||||
|
||||
Response status codes
|
||||
**********************
|
||||
- **400**: Invalid request
|
||||
- **404**: Instance doesn't exist
|
||||
- **204**: Instance paused
|
||||
|
||||
Input
|
||||
*******
|
||||
.. raw:: html
|
||||
|
||||
<table>
|
||||
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
|
||||
<tr><td>adapter_type</td> <td> </td> <td>string</td> <td>Docker adapter type</td> </tr>
|
||||
<tr><td>adapters</td> <td> </td> <td>integer</td> <td>number of adapters</td> </tr>
|
||||
<tr><td>console</td> <td> </td> <td>string</td> <td>console name</td> </tr>
|
||||
<tr><td>imagename</td> <td> </td> <td>string</td> <td>Docker image name</td> </tr>
|
||||
<tr><td>name</td> <td> </td> <td>string</td> <td>Docker container name</td> </tr>
|
||||
<tr><td>startcmd</td> <td> </td> <td>string</td> <td>Docker CMD entry</td> </tr>
|
||||
<tr><td>vm_id</td> <td> </td> <td></td> <td>Docker VM instance identifier</td> </tr>
|
||||
</table>
|
||||
|
||||
Output
|
||||
*******
|
||||
.. raw:: html
|
||||
|
||||
<table>
|
||||
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
|
||||
<tr><td>adapter_type</td> <td> </td> <td>string</td> <td>Docker adapter type</td> </tr>
|
||||
<tr><td>adapters</td> <td> </td> <td>integer</td> <td>number of adapters</td> </tr>
|
||||
<tr><td>cid</td> <td> </td> <td>string</td> <td>Docker container ID</td> </tr>
|
||||
<tr><td>image</td> <td> </td> <td>string</td> <td>Docker image name</td> </tr>
|
||||
<tr><td>name</td> <td> </td> <td>string</td> <td>Docker container name</td> </tr>
|
||||
<tr><td>project_id</td> <td>✔</td> <td>string</td> <td>Project UUID</td> </tr>
|
||||
<tr><td>vm_id</td> <td>✔</td> <td>string</td> <td>Docker container instance UUID</td> </tr>
|
||||
</table>
|
||||
|
8
docs/api/v1/dynamips_device.rst
Normal file
8
docs/api/v1/dynamips_device.rst
Normal file
@ -0,0 +1,8 @@
|
||||
Dynamips device
|
||||
---------------------
|
||||
|
||||
.. toctree::
|
||||
:glob:
|
||||
:maxdepth: 2
|
||||
|
||||
dynamips_device/*
|
@ -0,0 +1,43 @@
|
||||
/v1/projects/{project_id}/dynamips/devices
|
||||
----------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
.. contents::
|
||||
|
||||
POST /v1/projects/**{project_id}**/dynamips/devices
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Create a new Dynamips device instance
|
||||
|
||||
Parameters
|
||||
**********
|
||||
- **project_id**: UUID for the project
|
||||
|
||||
Response status codes
|
||||
**********************
|
||||
- **400**: Invalid request
|
||||
- **201**: Instance created
|
||||
- **409**: Conflict
|
||||
|
||||
Input
|
||||
*******
|
||||
.. raw:: html
|
||||
|
||||
<table>
|
||||
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
|
||||
<tr><td>device_id</td> <td> </td> <td></td> <td>Dynamips device instance identifier</td> </tr>
|
||||
<tr><td>device_type</td> <td>✔</td> <td>string</td> <td>Dynamips device type</td> </tr>
|
||||
<tr><td>name</td> <td>✔</td> <td>string</td> <td>Dynamips device name</td> </tr>
|
||||
</table>
|
||||
|
||||
Output
|
||||
*******
|
||||
.. raw:: html
|
||||
|
||||
<table>
|
||||
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
|
||||
<tr><td>device_id</td> <td>✔</td> <td>string</td> <td>Dynamips router instance UUID</td> </tr>
|
||||
<tr><td>mappings</td> <td> </td> <td>object</td> <td></td> </tr>
|
||||
<tr><td>name</td> <td>✔</td> <td>string</td> <td>Dynamips device instance name</td> </tr>
|
||||
<tr><td>ports</td> <td> </td> <td>array</td> <td></td> </tr>
|
||||
<tr><td>project_id</td> <td>✔</td> <td>string</td> <td>Project UUID</td> </tr>
|
||||
</table>
|
||||
|
@ -0,0 +1,107 @@
|
||||
/v1/projects/{project_id}/dynamips/devices/{device_id}
|
||||
----------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
.. contents::
|
||||
|
||||
GET /v1/projects/**{project_id}**/dynamips/devices/**{device_id}**
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Get a Dynamips device instance
|
||||
|
||||
Parameters
|
||||
**********
|
||||
- **device_id**: UUID for the instance
|
||||
- **project_id**: UUID for the project
|
||||
|
||||
Response status codes
|
||||
**********************
|
||||
- **200**: Success
|
||||
- **400**: Invalid request
|
||||
- **404**: Instance doesn't exist
|
||||
|
||||
Output
|
||||
*******
|
||||
.. raw:: html
|
||||
|
||||
<table>
|
||||
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
|
||||
<tr><td>device_id</td> <td>✔</td> <td>string</td> <td>Dynamips router instance UUID</td> </tr>
|
||||
<tr><td>mappings</td> <td> </td> <td>object</td> <td></td> </tr>
|
||||
<tr><td>name</td> <td>✔</td> <td>string</td> <td>Dynamips device instance name</td> </tr>
|
||||
<tr><td>ports</td> <td> </td> <td>array</td> <td></td> </tr>
|
||||
<tr><td>project_id</td> <td>✔</td> <td>string</td> <td>Project UUID</td> </tr>
|
||||
</table>
|
||||
|
||||
|
||||
PUT /v1/projects/**{project_id}**/dynamips/devices/**{device_id}**
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Update a Dynamips device instance
|
||||
|
||||
Parameters
|
||||
**********
|
||||
- **device_id**: UUID for the instance
|
||||
- **project_id**: UUID for the project
|
||||
|
||||
Response status codes
|
||||
**********************
|
||||
- **200**: Instance updated
|
||||
- **400**: Invalid request
|
||||
- **404**: Instance doesn't exist
|
||||
- **409**: Conflict
|
||||
|
||||
Input
|
||||
*******
|
||||
Types
|
||||
+++++++++
|
||||
EthernetSwitchPort
|
||||
^^^^^^^^^^^^^^^^^^^^^^
|
||||
Ethernet switch port
|
||||
|
||||
.. raw:: html
|
||||
|
||||
<table>
|
||||
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
|
||||
<tr><td>ethertype</td> <td> </td> <td>enum</td> <td>Possible values: , 0x8100, 0x88A8, 0x9100, 0x9200</td> </tr>
|
||||
<tr><td>port</td> <td>✔</td> <td>integer</td> <td>Port number</td> </tr>
|
||||
<tr><td>type</td> <td>✔</td> <td>enum</td> <td>Possible values: access, dot1q, qinq</td> </tr>
|
||||
<tr><td>vlan</td> <td>✔</td> <td>integer</td> <td>VLAN number</td> </tr>
|
||||
</table>
|
||||
|
||||
Body
|
||||
+++++++++
|
||||
.. raw:: html
|
||||
|
||||
<table>
|
||||
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
|
||||
<tr><td>name</td> <td> </td> <td>string</td> <td>Dynamips device instance name</td> </tr>
|
||||
<tr><td>ports</td> <td> </td> <td>array</td> <td></td> </tr>
|
||||
</table>
|
||||
|
||||
Output
|
||||
*******
|
||||
.. raw:: html
|
||||
|
||||
<table>
|
||||
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
|
||||
<tr><td>device_id</td> <td>✔</td> <td>string</td> <td>Dynamips router instance UUID</td> </tr>
|
||||
<tr><td>mappings</td> <td> </td> <td>object</td> <td></td> </tr>
|
||||
<tr><td>name</td> <td>✔</td> <td>string</td> <td>Dynamips device instance name</td> </tr>
|
||||
<tr><td>ports</td> <td> </td> <td>array</td> <td></td> </tr>
|
||||
<tr><td>project_id</td> <td>✔</td> <td>string</td> <td>Project UUID</td> </tr>
|
||||
</table>
|
||||
|
||||
|
||||
DELETE /v1/projects/**{project_id}**/dynamips/devices/**{device_id}**
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Delete a Dynamips device instance
|
||||
|
||||
Parameters
|
||||
**********
|
||||
- **device_id**: UUID for the instance
|
||||
- **project_id**: UUID for the project
|
||||
|
||||
Response status codes
|
||||
**********************
|
||||
- **400**: Invalid request
|
||||
- **404**: Instance doesn't exist
|
||||
- **204**: Instance deleted
|
||||
|
@ -0,0 +1,151 @@
|
||||
/v1/projects/{project_id}/dynamips/devices/{device_id}/ports/{port_number:\d+}/nio
|
||||
----------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
.. contents::
|
||||
|
||||
POST /v1/projects/**{project_id}**/dynamips/devices/**{device_id}**/ports/**{port_number:\d+}**/nio
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Add a NIO to a Dynamips device instance
|
||||
|
||||
Parameters
|
||||
**********
|
||||
- **device_id**: UUID for the instance
|
||||
- **project_id**: UUID for the project
|
||||
- **port_number**: Port on the device
|
||||
|
||||
Response status codes
|
||||
**********************
|
||||
- **400**: Invalid request
|
||||
- **201**: NIO created
|
||||
- **404**: Instance doesn't exist
|
||||
|
||||
Input
|
||||
*******
|
||||
Types
|
||||
+++++++++
|
||||
Ethernet
|
||||
^^^^^^^^^^^^^^^^^^^^^^
|
||||
Generic Ethernet Network Input/Output
|
||||
|
||||
.. raw:: html
|
||||
|
||||
<table>
|
||||
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
|
||||
<tr><td>ethernet_device</td> <td>✔</td> <td>string</td> <td>Ethernet device name e.g. eth0</td> </tr>
|
||||
<tr><td>type</td> <td>✔</td> <td>enum</td> <td>Possible values: nio_generic_ethernet</td> </tr>
|
||||
</table>
|
||||
|
||||
LinuxEthernet
|
||||
^^^^^^^^^^^^^^^^^^^^^^
|
||||
Linux Ethernet Network Input/Output
|
||||
|
||||
.. raw:: html
|
||||
|
||||
<table>
|
||||
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
|
||||
<tr><td>ethernet_device</td> <td>✔</td> <td>string</td> <td>Ethernet device name e.g. eth0</td> </tr>
|
||||
<tr><td>type</td> <td>✔</td> <td>enum</td> <td>Possible values: nio_linux_ethernet</td> </tr>
|
||||
</table>
|
||||
|
||||
NAT
|
||||
^^^^^^^^^^^^^^^^^^^^^^
|
||||
NAT Network Input/Output
|
||||
|
||||
.. raw:: html
|
||||
|
||||
<table>
|
||||
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
|
||||
<tr><td>type</td> <td>✔</td> <td>enum</td> <td>Possible values: nio_nat</td> </tr>
|
||||
</table>
|
||||
|
||||
NULL
|
||||
^^^^^^^^^^^^^^^^^^^^^^
|
||||
NULL Network Input/Output
|
||||
|
||||
.. raw:: html
|
||||
|
||||
<table>
|
||||
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
|
||||
<tr><td>type</td> <td>✔</td> <td>enum</td> <td>Possible values: nio_null</td> </tr>
|
||||
</table>
|
||||
|
||||
TAP
|
||||
^^^^^^^^^^^^^^^^^^^^^^
|
||||
TAP Network Input/Output
|
||||
|
||||
.. raw:: html
|
||||
|
||||
<table>
|
||||
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
|
||||
<tr><td>tap_device</td> <td>✔</td> <td>string</td> <td>TAP device name e.g. tap0</td> </tr>
|
||||
<tr><td>type</td> <td>✔</td> <td>enum</td> <td>Possible values: nio_tap</td> </tr>
|
||||
</table>
|
||||
|
||||
UDP
|
||||
^^^^^^^^^^^^^^^^^^^^^^
|
||||
UDP Network Input/Output
|
||||
|
||||
.. raw:: html
|
||||
|
||||
<table>
|
||||
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
|
||||
<tr><td>lport</td> <td>✔</td> <td>integer</td> <td>Local port</td> </tr>
|
||||
<tr><td>rhost</td> <td>✔</td> <td>string</td> <td>Remote host</td> </tr>
|
||||
<tr><td>rport</td> <td>✔</td> <td>integer</td> <td>Remote port</td> </tr>
|
||||
<tr><td>type</td> <td>✔</td> <td>enum</td> <td>Possible values: nio_udp</td> </tr>
|
||||
</table>
|
||||
|
||||
UNIX
|
||||
^^^^^^^^^^^^^^^^^^^^^^
|
||||
UNIX Network Input/Output
|
||||
|
||||
.. raw:: html
|
||||
|
||||
<table>
|
||||
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
|
||||
<tr><td>local_file</td> <td>✔</td> <td>string</td> <td>path to the UNIX socket file (local)</td> </tr>
|
||||
<tr><td>remote_file</td> <td>✔</td> <td>string</td> <td>path to the UNIX socket file (remote)</td> </tr>
|
||||
<tr><td>type</td> <td>✔</td> <td>enum</td> <td>Possible values: nio_unix</td> </tr>
|
||||
</table>
|
||||
|
||||
VDE
|
||||
^^^^^^^^^^^^^^^^^^^^^^
|
||||
VDE Network Input/Output
|
||||
|
||||
.. raw:: html
|
||||
|
||||
<table>
|
||||
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
|
||||
<tr><td>control_file</td> <td>✔</td> <td>string</td> <td>path to the VDE control file</td> </tr>
|
||||
<tr><td>local_file</td> <td>✔</td> <td>string</td> <td>path to the VDE control file</td> </tr>
|
||||
<tr><td>type</td> <td>✔</td> <td>enum</td> <td>Possible values: nio_vde</td> </tr>
|
||||
</table>
|
||||
|
||||
Body
|
||||
+++++++++
|
||||
.. raw:: html
|
||||
|
||||
<table>
|
||||
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
|
||||
<tr><td>mappings</td> <td> </td> <td>object</td> <td></td> </tr>
|
||||
<tr><td>nio</td> <td>✔</td> <td>UDP, Ethernet, LinuxEthernet, NAT, TAP, UNIX, VDE, NULL</td> <td></td> </tr>
|
||||
<tr><td>port_settings</td> <td> </td> <td>object</td> <td>Ethernet switch</td> </tr>
|
||||
</table>
|
||||
|
||||
|
||||
DELETE /v1/projects/**{project_id}**/dynamips/devices/**{device_id}**/ports/**{port_number:\d+}**/nio
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Remove a NIO from a Dynamips device instance
|
||||
|
||||
Parameters
|
||||
**********
|
||||
- **device_id**: UUID for the instance
|
||||
- **project_id**: UUID for the project
|
||||
- **port_number**: Port on the device
|
||||
|
||||
Response status codes
|
||||
**********************
|
||||
- **400**: Invalid request
|
||||
- **404**: Instance doesn't exist
|
||||
- **204**: NIO deleted
|
||||
|
@ -0,0 +1,31 @@
|
||||
/v1/projects/{project_id}/dynamips/devices/{device_id}/ports/{port_number:\d+}/start_capture
|
||||
----------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
.. contents::
|
||||
|
||||
POST /v1/projects/**{project_id}**/dynamips/devices/**{device_id}**/ports/**{port_number:\d+}**/start_capture
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Start a packet capture on a Dynamips device instance
|
||||
|
||||
Parameters
|
||||
**********
|
||||
- **device_id**: UUID for the instance
|
||||
- **project_id**: UUID for the project
|
||||
- **port_number**: Port on the device
|
||||
|
||||
Response status codes
|
||||
**********************
|
||||
- **200**: Capture started
|
||||
- **400**: Invalid request
|
||||
- **404**: Instance doesn't exist
|
||||
|
||||
Input
|
||||
*******
|
||||
.. raw:: html
|
||||
|
||||
<table>
|
||||
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
|
||||
<tr><td>capture_file_name</td> <td>✔</td> <td>string</td> <td>Capture file name</td> </tr>
|
||||
<tr><td>data_link_type</td> <td>✔</td> <td>string</td> <td>PCAP data link type</td> </tr>
|
||||
</table>
|
||||
|
@ -0,0 +1,21 @@
|
||||
/v1/projects/{project_id}/dynamips/devices/{device_id}/ports/{port_number:\d+}/stop_capture
|
||||
----------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
.. contents::
|
||||
|
||||
POST /v1/projects/**{project_id}**/dynamips/devices/**{device_id}**/ports/**{port_number:\d+}**/stop_capture
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Stop a packet capture on a Dynamips device instance
|
||||
|
||||
Parameters
|
||||
**********
|
||||
- **device_id**: UUID for the instance
|
||||
- **project_id**: UUID for the project
|
||||
- **port_number**: Port on the device
|
||||
|
||||
Response status codes
|
||||
**********************
|
||||
- **400**: Invalid request
|
||||
- **404**: Instance doesn't exist
|
||||
- **204**: Capture stopped
|
||||
|
8
docs/api/v1/dynamips_vm.rst
Normal file
8
docs/api/v1/dynamips_vm.rst
Normal file
@ -0,0 +1,8 @@
|
||||
Dynamips vm
|
||||
---------------------
|
||||
|
||||
.. toctree::
|
||||
:glob:
|
||||
:maxdepth: 2
|
||||
|
||||
dynamips_vm/*
|
13
docs/api/v1/dynamips_vm/dynamipsvms.rst
Normal file
13
docs/api/v1/dynamips_vm/dynamipsvms.rst
Normal file
@ -0,0 +1,13 @@
|
||||
/v1/dynamips/vms
|
||||
----------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
.. contents::
|
||||
|
||||
GET /v1/dynamips/vms
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Retrieve the list of Dynamips VMS
|
||||
|
||||
Response status codes
|
||||
**********************
|
||||
- **200**: List of Dynamips VM retrieved
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user