Add example customised docker-compose. 10/119810/1
authorBartosz Gardziejewski <bartosz.gardziejewski@nokia.com>
Thu, 25 Mar 2021 07:23:20 +0000 (08:23 +0100)
committerBartosz Gardziejewski <bartosz.gardziejewski@nokia.com>
Thu, 25 Mar 2021 11:02:28 +0000 (12:02 +0100)
Signed-off-by: Bartosz Gardziejewski <bartosz.gardziejewski@nokia.com>
Change-Id: I718def19f9bca38c2df1c5355264f341156842aa
Issue-ID: INT-1869

16 files changed:
README.md
docker-compose.yml
example/README.md [new file with mode: 0644]
example/customise-docker-compose.yml [new file with mode: 0644]
example/example_certs/ca.crt [new file with mode: 0644]
example/example_certs/ca.key [new file with mode: 0644]
example/example_certs/client.crt [new file with mode: 0644]
example/example_certs/client.key [new file with mode: 0644]
example/example_certs/server.crt [new file with mode: 0644]
example/example_certs/server.key [new file with mode: 0644]
example/example_certs/server_pub.key [new file with mode: 0644]
example/example_models/example-models-configuration.ini [new file with mode: 0644]
example/example_models/example-module-2.data.xml [new file with mode: 0644]
example/example_models/example-module-2.yang [new file with mode: 0644]
example/example_models/example-module.data.xml [new file with mode: 0644]
example/example_models/example-module.yang [new file with mode: 0644]

index 2fd0576..33703dd 100644 (file)
--- 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:
index bf43ff5..fbc9516 100644 (file)
@@ -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 (file)
index 0000000..190f144
--- /dev/null
@@ -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 (file)
index 0000000..f5f91a6
--- /dev/null
@@ -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 (file)
index 0000000..dae1e56
--- /dev/null
@@ -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 (file)
index 0000000..cd4fee4
--- /dev/null
@@ -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 (file)
index 0000000..9e22265
--- /dev/null
@@ -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 (file)
index 0000000..9de14f8
--- /dev/null
@@ -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 (file)
index 0000000..750b31b
--- /dev/null
@@ -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 (file)
index 0000000..23f415d
--- /dev/null
@@ -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 (file)
index 0000000..7990a38
--- /dev/null
@@ -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 (file)
index 0000000..7e99c55
--- /dev/null
@@ -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 (file)
index 0000000..82081c9
--- /dev/null
@@ -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 (file)
index 0000000..1b101e5
--- /dev/null
@@ -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 (file)
index 0000000..e71c661
--- /dev/null
@@ -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 (file)
index 0000000..b1fbde8
--- /dev/null
@@ -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;}
+  }
+}