Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
== 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/