aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBartosz Gardziejewski <bartosz.gardziejewski@nokia.com>2021-03-25 08:23:20 +0100
committerBartosz Gardziejewski <bartosz.gardziejewski@nokia.com>2021-03-25 12:02:28 +0100
commit1bf3fbc3d6f98cb18f009b2a12ca9d35436265c8 (patch)
tree313c33ed6114ec1f485e7e52ab5c6874e96dd844
parentd8facaa17d35af37291192d09a783c620bc379c5 (diff)
Add example customised docker-compose.
Signed-off-by: Bartosz Gardziejewski <bartosz.gardziejewski@nokia.com> Change-Id: I718def19f9bca38c2df1c5355264f341156842aa Issue-ID: INT-1869
-rw-r--r--README.md23
-rw-r--r--docker-compose.yml2
-rw-r--r--example/README.md6
-rw-r--r--example/customise-docker-compose.yml17
-rw-r--r--example/example_certs/ca.crt19
-rw-r--r--example/example_certs/ca.key28
-rw-r--r--example/example_certs/client.crt19
-rw-r--r--example/example_certs/client.key28
-rw-r--r--example/example_certs/server.crt19
-rw-r--r--example/example_certs/server.key28
-rw-r--r--example/example_certs/server_pub.key9
-rw-r--r--example/example_models/example-models-configuration.ini2
-rw-r--r--example/example_models/example-module-2.data.xml24
-rw-r--r--example/example_models/example-module-2.yang9
-rw-r--r--example/example_models/example-module.data.xml25
-rw-r--r--example/example_models/example-module.yang10
16 files changed, 260 insertions, 8 deletions
diff --git a/README.md b/README.md
index 2fd0576..33703dd 100644
--- a/README.md
+++ b/README.md
@@ -2,6 +2,7 @@
This server uses sysrepo to simulate network configuration.
It is base od sysrepo-netopeer2 image.
+
## User guide
### starting server
In order to start server use docker-compose located in root catalog:
@@ -10,7 +11,7 @@ In order to start server use docker-compose located in root catalog:
```
or run image using docker:
```shell
- docker run -it -p 830:830 -p 6513:6513 onap/org.onap.integration.simulators.netconf-server:latest
+ docker run -it -p 830:830 -p 6513:6513 -p 6555:6555 onap/org.onap.integration.simulators.netconf-server:latest
```
### using server
@@ -18,12 +19,13 @@ Server allows:
- installing custom configuration models on start up.
- changing configuration of that modules on runtime.
-Config can be changed with use of **SSH, be default expose on port 830**
-and **TLS, be default exposed on port 6513**.
+Configuration of models can be changed with use of **SSH, be default expose on port 830**,
+**TLS, be default exposed on port 6513** and **REST API, be default expose on port 6555**.
- SSH works "out of the box" with a username and password *netconf*.
- **TLS is disabled be default**,
in order to enable it, set environment variable `ENABLE_TLS=true`.
- More about TLS in ***TLS*** section.
+ More about TLS in ***TLS*** section.
+- REST API works "out of the box", more about it in ***REST API*** section.
### custom models
new models are loaded on the image start up from catalog `/resources/models`.
@@ -34,7 +36,8 @@ More about that file in ***config change subscription*** section.
In order to load custom models on start up,
volume with models and configuration file, should be mounted to `/resources/models` directory.
It can be done in docker-compose, by putting
-`./path/to/cusom/models:/resources/models` in *volumes* section.
+`./path/to/cusom/models:/resources/models` in ***volumes*** section.
+Examples of custom models configuration can be found in `example` directory.
### TLS
TLS in disabled be default with environment variable `ENABLE_TLS` set to false.
@@ -42,6 +45,7 @@ In order to enable TLS, that environment variable need to be set to `true`
**on container start up**.
It can be done in docker-compose,
by putting `ENABLE_TLS=true` in *environment* section.
+Example of that TLS configuration can be found in `example` directory.
#### custom certificate
When TLS is enabled server will use auto generated certificates, be default.
@@ -50,6 +54,7 @@ are located in `/resources/certs` directory.
Certificates are loaded during image start up.
**In order to use custom certs**
volume with certificates needs to be mounted to `/resources/certs` directory.
+Example of that custom certificates configuration can be found in `example` directory.
In this volume following files are required, **named accordingly**:
- **ca.crt** - CA/Root certificate
- **client.crt** - client certificate
@@ -71,12 +76,18 @@ Configuration file should be formatted in proper way:
[SUBSCRIPTION]
models = my-model-1,my-model-2,my-model-3
```
-Custom modules, to subscribe to, should be separated with comma.
+Custom modules, to subscribe to, should be separated with comma.
+Example of that custom config change subscription can be found in `example` directory.
+
+### REST API
+Netconf server provides REST interface, with enpoints:
+- *GET* `/healthcheck` returns 200 "UP" if server is up and running
### logging
Netconf server print all logs on to the console.
Logs from python application are also stored in file `/logs/netconf_saver.log`
+
## Development guide
### building image
In order to build image mvn command can be run:
diff --git a/docker-compose.yml b/docker-compose.yml
index bf43ff5..fbc9516 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -5,8 +5,6 @@ services:
netconf-server:
container_name: netconf-server
image: onap/org.onap.integration.nfsimulator.netconfserver:latest
- environment:
- - ENABLE_TLS=true
ports:
- "830:830"
- "6513:6513"
diff --git a/example/README.md b/example/README.md
new file mode 100644
index 0000000..190f144
--- /dev/null
+++ b/example/README.md
@@ -0,0 +1,6 @@
+# Netconf Server Example
+This directory contains example of custom configured Netconf Server.
+In order to start example custom server run command:
+```shell
+docker-compose -f ./customise-docker-compose.yml up
+```
diff --git a/example/customise-docker-compose.yml b/example/customise-docker-compose.yml
new file mode 100644
index 0000000..f5f91a6
--- /dev/null
+++ b/example/customise-docker-compose.yml
@@ -0,0 +1,17 @@
+version: '3'
+
+services:
+
+ netconf-server:
+ container_name: netconf-server
+ image: onap/org.onap.integration.nfsimulator.netconfserver:latest
+ environment:
+ - ENABLE_TLS=true
+ - MODELS_CONFIGURATION_FILE_NAME=example-models-configuration.ini
+ volumes:
+ - ./example_models:/resources/models
+ - ./example_certs:/resources/certs
+ ports:
+ - "830:830"
+ - "6513:6513"
+ - "6555:6555"
diff --git a/example/example_certs/ca.crt b/example/example_certs/ca.crt
new file mode 100644
index 0000000..dae1e56
--- /dev/null
+++ b/example/example_certs/ca.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDCTCCAfECFGy8PZ76TMVrgygHy+f6w/xEN5bIMA0GCSqGSIb3DQEBCwUAMEEx
+CzAJBgNVBAYTAlVTMQ0wCwYDVQQKDARPTkFQMQ4wDAYDVQQLDAVPU0FBRjETMBEG
+A1UEAwwKQ0EuTkVUQ09ORjAeFw0yMTAzMTcwOTA1NDNaFw0yMzAzMTcwOTA1NDNa
+MEExCzAJBgNVBAYTAlVTMQ0wCwYDVQQKDARPTkFQMQ4wDAYDVQQLDAVPU0FBRjET
+MBEGA1UEAwwKQ0EuTkVUQ09ORjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBAMDYG/xBi+dydycFkVb3PYooEP1EGQroRmDlqB9mbGN7szdppvn6QP2v6ytV
+LaCcytGS9cTXmpZM0Ly4K2XYnouyUSEgUP0aVp/bGRirjven3V/E3kyRnJGCHgQ8
+7mncCmLML8uCLPzSTfhgf/nhIZUTNzicl0+tjSwwzsKsiPouEaDy/p6A5btzo3MB
+b4P8xlRfl2QB2fZLw1DlW+CjmU/Cm60a9cM9P9UIZmp/g2BNxRaoFmWpQp8phR2u
+ZrqB04PYVpIQQ5IukFTtgbGxDCUPlgb/IlK8RbMxy/4x8w5ybuBGKkBZP9JG0Cqg
+LzCUR3cQboZZuYN86xGFMGSN9WMCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAiqZd
+efl/CNXYzMS/oMbU5Y4WG/qBlgogzaY2kFq96eTiMecckpPXGmKs/oyksvxOGV7Z
+xo+DxzfScdjjg++XEztfb1NpfHI9KUqx/aJ9HEe6jxlf8oX5SMk4oZ2C1DCNv8iz
+5VvWzDmWOnL919sl/t/ppisYV45mD/09vLE0GGTGf5Fmq9a5bvt0Q1kuT5nJqw4g
+l51WfyGcEs19+idiRHYRSkb7pfEoAcYQtUKL0DDsqpB1EOzDyLqIrupn2Scj6HVs
+ObQbeMakMvkIoTVMOTVNTfVNfq+wmGNlRxzLSvw02xdsMS+Gyfa5xDIIe62Ay7fp
+Wj/tSAy67yUghUxZ/g==
+-----END CERTIFICATE-----
diff --git a/example/example_certs/ca.key b/example/example_certs/ca.key
new file mode 100644
index 0000000..cd4fee4
--- /dev/null
+++ b/example/example_certs/ca.key
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDA2Bv8QYvncncn
+BZFW9z2KKBD9RBkK6EZg5agfZmxje7M3aab5+kD9r+srVS2gnMrRkvXE15qWTNC8
+uCtl2J6LslEhIFD9Glaf2xkYq473p91fxN5MkZyRgh4EPO5p3ApizC/Lgiz80k34
+YH/54SGVEzc4nJdPrY0sMM7CrIj6LhGg8v6egOW7c6NzAW+D/MZUX5dkAdn2S8NQ
+5Vvgo5lPwputGvXDPT/VCGZqf4NgTcUWqBZlqUKfKYUdrma6gdOD2FaSEEOSLpBU
+7YGxsQwlD5YG/yJSvEWzMcv+MfMOcm7gRipAWT/SRtAqoC8wlEd3EG6GWbmDfOsR
+hTBkjfVjAgMBAAECggEAVh8tQFa1eENyWwbthX0dCpoiHDlRRcG9zIBDuOIw/ay8
+uL6CR5kvdRwfVlbP7a6YFUggYiw3aXAcuGs3VmCLTa/w825PPPmKPhHG/3F+g7N/
+9ckhzegpmAIYDaR4hOYz7TNrFOOp267AC3BtNtcH/F98hdfI61iCd33EmMQc2Dz8
+OJgr2DnYPoueDzm4EiuR819io05cGLrvdnkfx7EnzX8zemwHUamfZfY37KaCv9Af
+1+Lb79GWAojrqDLX53aCBUZG7tESxxg0wdJpOGCr3b7FEf3M0nNEGaiXATLC+Hgb
+PpoCE3/ru7+O+8mZcph7oWW9Bv3J58qWWXyCsQSZYQKBgQDjQG7rhMsTpC7SVE7k
+1PDFNW4BR/uMjZXALTJ3zaUlTrfHdMTn3Mvib8oegqNTX+WxhNYdVx0u1cpqVWtM
+Pp5IGLG2MqgxzYewQUYH+gelW8zOvFouaah1v4kqYj2x9v53kO03TMTkjyQUfOFx
+pLvcN1+YzSZo/2+NlHyxenZuNQKBgQDZPWKxcrzHapvt460f+W6zokX1HFSts4WN
+tfB7vFugw6YXxAsqtvUL8wgRymoribSYlxRhOYhsMp8ugVJSaHMwNZVJ4A3BBERj
+XYThtZ2twPIkziKr561ZF8JgPOECiqNpNDi4VcVGabKTahM5J1iFnNBxIR9LSfgt
+58neENQoNwKBgCv7cHxMuzEV+anjf1FylRbV/HBrChht3qnPFZFyT6Ak2BTWWLW3
+Wg59LFUzW4Drcn0lBHuxPIiv//kMhzO+esvhW6OzsjHRYY2PVIp+rbQnTEBG2/1X
+na8MXvPBB8fF0gI6Hm8xgHnr6kO817Uy+NjqLqpYKjLwHRr9vhRrazhxAoGBAKcV
+haEBpJykLIYNhQyAplpXRwM85QwsdV4HP42L09WUZV0GFaimy1aDeANm8b3GzjZG
+jRAyVfESBkiYgp6LY30C2W3We/2msIrUVO3c6AfJzPPt79DUAgnyMjge2tk/lGvI
+FJACuBZuGUE0ZtCgqH8rm05HsXAQ1mdITYUU4HiFAoGAOCKjeOZ4BKHaSCWbEvrl
+SXrrnVdCIN3M5HgYPzul+9i4FKpCHePFGt0l5qGsr6MPAL4/Ae8YFMb678HIUWwg
+a/CW+rtEL8+eZ7Ap57WU/8lFLW67j3jgbi+3kMRC7KfOVD03HiGXSkNU8zgRu30m
+qIXRvPPicAbExzdueAQgJrs=
+-----END PRIVATE KEY-----
diff --git a/example/example_certs/client.crt b/example/example_certs/client.crt
new file mode 100644
index 0000000..9e22265
--- /dev/null
+++ b/example/example_certs/client.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDEDCCAfgCFBLf32YOnxyvsYtAt/B7ReAHeIUlMA0GCSqGSIb3DQEBCwUAMEEx
+CzAJBgNVBAYTAlVTMQ0wCwYDVQQKDARPTkFQMQ4wDAYDVQQLDAVPU0FBRjETMBEG
+A1UEAwwKQ0EuTkVUQ09ORjAeFw0yMTAzMTcwOTA1NDNaFw0yMzAzMTcwOTA1NDNa
+MEgxCzAJBgNVBAYTAlVTMQ0wCwYDVQQKDARPTkFQMQ4wDAYDVQQLDAVPU0FBRjEa
+MBgGA1UEAwwRQ0EuTkVUQ09ORi5DTElFTlQwggEiMA0GCSqGSIb3DQEBAQUAA4IB
+DwAwggEKAoIBAQCrE/FNwE4TmTTkvaYmNhU59C/+ajKSjaU9q8KQfgkI4GdmS0vy
+HLmsEywdTZGKOrQjuOxrW50TCtj0wCrhkcP6GNTtnJEz/aQFqYHlb9Ng7//9WsfQ
+uoGZ42Ys5wUCY/eEW8UiZv/2kl7e26vkC9r/AheuqsPG5ECCQ5QPe0Fz3UWIZj5O
+XJ5tpjLa52ngjEE54ug2FI2GuknBkV0qmJDVcZo7fgXAvydDLj5f2x+vCgn9ICur
+yPgJ7zMLLLdIi7LEKfrvxt8tbWJZO7fkOHIUqBtuyx1DwGi+NCDQmCEcb4acL61X
+R2nUp+/J/3tPt2ASsYktzuwk3JaUsfS5GhAZAgMBAAEwDQYJKoZIhvcNAQELBQAD
+ggEBAGmTiVUPYx06OTyIlqjnvMLcCpqWgx5sV1ZTUjaNtKDdOMCGhiN2PCm3zRyU
+bTkH904OX5WiSAV+Mvciyw1Qi7wrM6PzN2jszCf7AoE4YfRB15NXo8+QJ1hsKgBg
+JmJuzJafFkLeeS/ghptOMWAuMybRxvju2519R497y8Vn3dj7n6V/lrlf4pQpk1AV
+9Zh3zYoxQM2b56tKZ3vpg3dqt6sxctSYZJ9CU82sZ5039TrnpK/9kl36DHrdI4Pb
+21LfSTDXNt/AQZ5aIfdAe3pfNRjpsaHxI1qT1xTwxldbY0YUfX/ZT6yujMgQ46HK
+2esaetbn8rs+EIx5RY6aqxLrT84=
+-----END CERTIFICATE-----
diff --git a/example/example_certs/client.key b/example/example_certs/client.key
new file mode 100644
index 0000000..9de14f8
--- /dev/null
+++ b/example/example_certs/client.key
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCrE/FNwE4TmTTk
+vaYmNhU59C/+ajKSjaU9q8KQfgkI4GdmS0vyHLmsEywdTZGKOrQjuOxrW50TCtj0
+wCrhkcP6GNTtnJEz/aQFqYHlb9Ng7//9WsfQuoGZ42Ys5wUCY/eEW8UiZv/2kl7e
+26vkC9r/AheuqsPG5ECCQ5QPe0Fz3UWIZj5OXJ5tpjLa52ngjEE54ug2FI2GuknB
+kV0qmJDVcZo7fgXAvydDLj5f2x+vCgn9ICuryPgJ7zMLLLdIi7LEKfrvxt8tbWJZ
+O7fkOHIUqBtuyx1DwGi+NCDQmCEcb4acL61XR2nUp+/J/3tPt2ASsYktzuwk3JaU
+sfS5GhAZAgMBAAECggEBAKJvUwRx/TAaneA6OdG6NDlMo207RD1mhGij9x7erJFj
+EIpOIBQINjsuEQrZpcDLsFLiuIfO+rsj54+sDosSrjN+9F2P9UaaI+zEX3OL0/YM
+qtDSKzsCex+0jEVCLL1yUYe44tqhVZO2sqGDjhf/MbZDNF1CApWMD7wfkiuI6kKp
+XmEjz4hhmg6lgU8ZVTqH1z1LTVZh1dZj/sbJ1V6cefMuKSxH3SIQqdu/QdN0E57b
+o2wufBNVIgybUQs5BjFE675fB8R85/qOcEO1zjRTyoU/LDqK1h08QOIj5Te2QzYh
+EM6IO39sJpAmajFty6rIP6wJyJIPxWk29DSeNmClKIkCgYEA1jsh0Cms/qtUhECx
+PzOdPI1C37ZEndI+K/GcKRZAdu/U1f7tXaRrZ8lDMh3zctHb0Wh4LIqY5UpMEVA5
+E/4MnRqTMauRj9T6klS3aPgCqrxh14n2YFW6B98RLh1eb+dciJZveQhNd4K43cdW
+qHBcUPhRhEpjfS4lv73BmJfhtasCgYEAzG7rWbIdGt/q0JtFNulGITqyb9IJ7Uj4
+JEBu3PE+a0YiqzJdwIPxr6TMW+LDocKuVLiv9ddFIaR4gwRL5QHlQ87zElmjvKp2
+1S0QgbsBl7/XrIG6TGs4xEHDYbLKmel7VB9m0poAWRqYl4cn+dBGJDC9wDN4G1qv
+DLPLixvIhUsCgYEAtdSAsZb97zXqSUpDZtpfJcrcLNceTDnrbQ7oNXNeidSr+Gok
+e+uXAgMwVnRXcmguxAGApoWImmzCPZuypoZlnF62+lyd8s+ZUeQ3vA9s7A9ymCfQ
+BxocCJxLj7F7u01LG99bhAYJAlvgntSXd+XOZScuwTMGWHR3s9PSYrre53sCgYEA
+mJof0sfTVBFb/jY5l4DQmdNwCWqXgGoc2SrD1ue6OWeUT4j8VM3pZry0085VTHW/
+nnxy1SfJchCM6PgXEy60Dkb4SXVidV4l8IGANeb7jGRnQV1hTNQo/s88YryM4hFY
+v3XlUkYlBl6FE2+Plroy8ab0rfl9qaWqz+eShBfMOjsCgYBZgjfi50E2pLhS+g8e
+718hG71/Er7TELGr8MXayykyQqyr4v7Goi1wwwxXAgCHbZ6tlh9AmNuDZu+8tYcc
+4WximAJToWF95EvRLuIU1TjNM0xc1QsP/fpf5jYIKy4cZ+Os5j2OqaswRoju3zNl
+rkAhDZKmmsxD9uf81iBV5JyJ8Q==
+-----END PRIVATE KEY-----
diff --git a/example/example_certs/server.crt b/example/example_certs/server.crt
new file mode 100644
index 0000000..750b31b
--- /dev/null
+++ b/example/example_certs/server.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDEDCCAfgCFBLf32YOnxyvsYtAt/B7ReAHeIUkMA0GCSqGSIb3DQEBCwUAMEEx
+CzAJBgNVBAYTAlVTMQ0wCwYDVQQKDARPTkFQMQ4wDAYDVQQLDAVPU0FBRjETMBEG
+A1UEAwwKQ0EuTkVUQ09ORjAeFw0yMTAzMTcwOTA1NDNaFw0yMzAzMTcwOTA1NDNa
+MEgxCzAJBgNVBAYTAlVTMQ0wCwYDVQQKDARPTkFQMQ4wDAYDVQQLDAVPU0FBRjEa
+MBgGA1UEAwwRQ0EuTkVUQ09ORi5TRVJWRVIwggEiMA0GCSqGSIb3DQEBAQUAA4IB
+DwAwggEKAoIBAQC4LAQi/t0AbcAiPx1pLQZvKGlxadHIBIfcqjpHc+XyOXTp2Xo5
++KJ1swvOFqUszgkvsQl7zLPeXZSTLsgullrqIdiaC3V+VYx3prFQsnbjUHp370sk
+wd7j9Y3ttYn1rm6lAc6+7iKIcDnpNYtgcDu8GPZlMLqXJe34jwJMI6lEbZkvl+b6
+mWraKGUu6zcuP5/eW9IBQfnxCaRtEgfU/zur4ilcegY8yERdb+wI0XR0eV78mhJn
+Iq8kCXV80irXOeoVzXgWbJCAgb00BYeSs1b+1y8ogzoPVg9nkVJZ0VMz27gKVk2d
+GIzFyCzlYc6IJtpQu49NrOQhOAOCxf0y1crZAgMBAAEwDQYJKoZIhvcNAQELBQAD
+ggEBAA2YAfnGXMSlPCn26bvafToF1l/9pNYgozt0dp0lhS8omGHzEJzaA/INt8nC
+4rc/sK6PzjDF76mD6xZIK2ssENgVkLS0xc0Coh4zrt2yzNJj3a2jba8AwR1hpPHr
+i6S89wPTX1lV9c8b4H2JmKfHcRiXL4wgAgG14f0s7l9TRvK2DPuZSEPSM/lOsIfk
+tLA5ZumN8KDFzapd9GDGe06o/B+rhquFly4w/3lgTwnN6hUniuF5NpvsFm4TkbVz
+JoKLdE8IiZDVXQijzLFEYfGvpszjNafN4YGc1PS83xq8hSiGiDbpH5dGC1CV9VKr
+4WYdd+8u6x4N/inSPzyfzaIJGRA=
+-----END CERTIFICATE-----
diff --git a/example/example_certs/server.key b/example/example_certs/server.key
new file mode 100644
index 0000000..23f415d
--- /dev/null
+++ b/example/example_certs/server.key
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQC4LAQi/t0AbcAi
+Px1pLQZvKGlxadHIBIfcqjpHc+XyOXTp2Xo5+KJ1swvOFqUszgkvsQl7zLPeXZST
+LsgullrqIdiaC3V+VYx3prFQsnbjUHp370skwd7j9Y3ttYn1rm6lAc6+7iKIcDnp
+NYtgcDu8GPZlMLqXJe34jwJMI6lEbZkvl+b6mWraKGUu6zcuP5/eW9IBQfnxCaRt
+EgfU/zur4ilcegY8yERdb+wI0XR0eV78mhJnIq8kCXV80irXOeoVzXgWbJCAgb00
+BYeSs1b+1y8ogzoPVg9nkVJZ0VMz27gKVk2dGIzFyCzlYc6IJtpQu49NrOQhOAOC
+xf0y1crZAgMBAAECggEBAJaikcOZ12L5YVPhcYnL5N5YHF5B4e6KHiGTLdWxattC
+uWhnk3wE68P+7OHkTbcm0gaq84nJdTikK9hyRBMusS+c/U+JndD14c0fjxnkzi7A
+bVrZYwmudELZXfuWJz/GKwNVRieOGLqlqAgh3lzDj2gatrUvNP5ZbJmHRqbF6DVp
+VWu7CnY61NW2i7G5iHmW3IBbVdBC9EM/593gjLdbBeuM8Q0eOGBkf9PEcr4Q3kjb
+TeBmwehD1s99pdLfBLhXgiNP+d5cDD1uimpBsJmjKz1FaD9Dxen0HfzHIYHYi1SN
+crhgKPnmRV0EB5NrIY3hiJ8y6cW2t8vBywWtYGl5ywECgYEA8/nqy1VfqiGRkQlI
+N6WOQ5AeiXSrEGZdLkuMlKaLXmijqwIFJFouAHBaJSoH08NByN03dqAggWPz+nSQ
+htTs8En/zKZ5rm9ER7kmGVd4RKMA7j+d0soNOeYxF3T2ktDgM06VsC1NzgagpoNN
+VqjYZnLSZrpT8F13cW/x9Sw/HOECgYEAwT+WsuLEDTfSIh7+DvMnjYxjabljWrzr
+a8N7lvjeaFBK2vnW/E1gfaVSYUVnRuNxJDhNdGybjNEd/8xn+6/oFp++4MSD4nda
+hoVsENfBcN7pcMF8VXQHyEu+FW/jjDvfxP0SgnZfNfSTQEHUfH2QPgob1c/Uz74v
+gBhRjf01NPkCgYEAsMUW9ZQ56A7CZY+QH6F4XkOBnJ5Hg25nfS+H//xbZl/ylei0
+yQ393puI9PxrB2eltl9x3CVQ5+7/yyvBu69yrPcwu5qy90vu8PiZPis+HJzuA7Fc
+LGnxA05hq1k3flCQ4RvDIQ7yHKB4razc0Dkt8ayn/X5ravCNpkcxzC3u3IECgYEA
+nGbLn7H6PDxuXGE6+3x+CYiSuPFq4Pg/jPMkZpa64jABtWI5Re+V5XrUxpb2NCBF
+5KuQvGZeKkThA7M6gS/oJc9aG+3QU4yHfpIjWSpVi/VNd42RBFQpLElo6U6qGkgn
+HfY4cdA91JxCROJCiBLTl/J0fsJ7GTtylDiaYNGKq3kCgYAtbIlEfHUTmHro1snQ
+d8c8VPD8WtaPgmW8qKBJdo4DT9h+E47QTmRYW1HRC4h/Jmg2LMqN1cylVn/xi0hC
+kgHUrPbOmkq+/Lz2gET+G1cZ24y3qk4HbFotyZDirIs+Gws6Qmoxt/UbOUd2vqf9
+cOYNhzbxwsJHBiZUJXODFddM5w==
+-----END PRIVATE KEY-----
diff --git a/example/example_certs/server_pub.key b/example/example_certs/server_pub.key
new file mode 100644
index 0000000..7990a38
--- /dev/null
+++ b/example/example_certs/server_pub.key
@@ -0,0 +1,9 @@
+-----BEGIN PUBLIC KEY-----
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuCwEIv7dAG3AIj8daS0G
+byhpcWnRyASH3Ko6R3Pl8jl06dl6OfiidbMLzhalLM4JL7EJe8yz3l2Uky7ILpZa
+6iHYmgt1flWMd6axULJ241B6d+9LJMHe4/WN7bWJ9a5upQHOvu4iiHA56TWLYHA7
+vBj2ZTC6lyXt+I8CTCOpRG2ZL5fm+plq2ihlLus3Lj+f3lvSAUH58QmkbRIH1P87
+q+IpXHoGPMhEXW/sCNF0dHle/JoSZyKvJAl1fNIq1znqFc14FmyQgIG9NAWHkrNW
+/tcvKIM6D1YPZ5FSWdFTM9u4ClZNnRiMxcgs5WHOiCbaULuPTazkITgDgsX9MtXK
+2QIDAQAB
+-----END PUBLIC KEY-----
diff --git a/example/example_models/example-models-configuration.ini b/example/example_models/example-models-configuration.ini
new file mode 100644
index 0000000..7e99c55
--- /dev/null
+++ b/example/example_models/example-models-configuration.ini
@@ -0,0 +1,2 @@
+[SUBSCRIPTION]
+models = example-module,example-module-2,ietf-netconf
diff --git a/example/example_models/example-module-2.data.xml b/example/example_models/example-module-2.data.xml
new file mode 100644
index 0000000..82081c9
--- /dev/null
+++ b/example/example_models/example-module-2.data.xml
@@ -0,0 +1,24 @@
+<!--
+ ============LICENSE_START=======================================================
+ Simulator
+ ================================================================================
+ Copyright (C) 2021 Nokia. All rights reserved.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ ============LICENSE_END=========================================================
+ -->
+
+<config xmlns="http://onap.org/example-module-2">
+ <itemValue1>10</itemValue1>
+ <itemValue2>42</itemValue2>
+</config>
diff --git a/example/example_models/example-module-2.yang b/example/example_models/example-module-2.yang
new file mode 100644
index 0000000..1b101e5
--- /dev/null
+++ b/example/example_models/example-module-2.yang
@@ -0,0 +1,9 @@
+module example-module-2 {
+ namespace "http://onap.org/example-module-2";
+ prefix config;
+ container config {
+ config true;
+ leaf itemValue1 {type uint32;}
+ leaf itemValue2 {type uint32;}
+ }
+}
diff --git a/example/example_models/example-module.data.xml b/example/example_models/example-module.data.xml
new file mode 100644
index 0000000..e71c661
--- /dev/null
+++ b/example/example_models/example-module.data.xml
@@ -0,0 +1,25 @@
+<!--
+ ============LICENSE_START=======================================================
+ Simulator
+ ================================================================================
+ Copyright (C) 2021 Nokia. All rights reserved.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ ============LICENSE_END=========================================================
+ -->
+
+<config xmlns="http://onap.org/example-module">
+ <itemValue1>42</itemValue1>
+ <itemValue2>35</itemValue2>
+ <itemValue3>55</itemValue3>
+</config>
diff --git a/example/example_models/example-module.yang b/example/example_models/example-module.yang
new file mode 100644
index 0000000..b1fbde8
--- /dev/null
+++ b/example/example_models/example-module.yang
@@ -0,0 +1,10 @@
+module example-module {
+ namespace "http://onap.org/example-module";
+ prefix config;
+ container config {
+ config true;
+ leaf itemValue1 {type uint32;}
+ leaf itemValue2 {type uint32;}
+ leaf itemValue3 {type uint32;}
+ }
+}