Skip to content
Snippets Groups Projects
commands.txt 2.06 KiB
Newer Older
Lluis Gifre Renom's avatar
Lluis Gifre Renom committed
== RESTCONF

=== YANG2SWAGGER

$ cd ~/tfs-ctrl/hackfest/restconf
(if needed)
$ wget https://github.com/bartoszm/yang2swagger/releases/download/1.1.11/swagger-generator-cli-1.1.11-executable.jar

Generate swagger files:
$ java -jar swagger-generator-cli-1.1.11-executable.jar -yang-dir ../yang/ -output topology.yaml topology
$ java -jar swagger-generator-cli-1.1.11-executable.jar -yang-dir ../yang/ -output connection.yaml connection



=== SERVER
$ cd ~/tfs-ctrl/hackfest/restconf
(if needed)
$ wget https://repo1.maven.org/maven2/io/swagger/codegen/v3/swagger-codegen-cli/3.0.11/swagger-codegen-cli-3.0.11.jar -O swagger-codegen-cli.jar

Create the server:
$ mkdir ~/tfs-ctrl/hackfest/restconf/server
$ java -jar swagger-codegen-cli.jar generate -i connection.yaml -l python-flask -o server

Run the server:
$ cd ~/tfs-ctrl/hackfest/restconf/server
$ pip3 install -r requirements.txt
(Open ~/tfs-ctrl/hackfest/restconf/server/swagger_server/swagger/swagger.yaml and modify all: "name: connection_id" for "name: connection-id")
RUN AUTOGENERATED SERVER
$ python3 -m swagger_server

(you have the solution in ~/tfs-ctrl/hackfest/restconf/connectionserver )

RUN CURL AS CLIENT (In another window)
$ cd ~/tfs-ctrl/hackfest/restconf/
$ curl -X POST -H "Content-Type: application/yang-data+json" http://127.0.0.1:8080/data/connection/ -d@conn1.json
$ curl -X GET -H "Content-Type: application/yang-data+json" http://127.0.0.1:8080/data/connection=0/
$ curl -X DELETE -H "Content-Type: application/yang-data+json" http://127.0.0.1:8080/data/connection=0/


=== Exercise: RESTCONF TOPOLOGY ===
$ mkdir ~/tfs-ctrl/hackfest/restconf/topologyserver
$ java -jar swagger-codegen-cli.jar generate -i topology.yaml -l python-flask -o topologyserver
$ cd ~/tfs-ctrl/hackfest/restconf/topologyserver
(Open ~/tfs-ctrl/hackfest/restconf/topologyserver/swagger_server/swagger/swagger.yaml and modify all: "name: link_id" for "name: link-id", same for node and port)
$ python3 -m swagger_server

RUN CURL AS CLIENT (In another window)
$curl -X GET -H "Content-Type: application/yang-data+json" http://127.0.0.1:8080/data/topology/