2 Documentation Test suite to verify callhome functionality over SSH transport protocol. Registration in OpenDaylight
3 ... Controller happens via restconf interface. Netopeer2-server docker container plays a role of the
4 ... netconf device with call-home feature. Docker-compose file is used to configure netopeer2 docker
5 ... container(netconf configuration templates, host-key).
7 Resource ../../../libraries/NetconfCallHome.robot
8 Resource ../../../libraries/CompareStream.robot
10 Suite Setup Suite Setup
11 Suite Teardown Suite Teardown
13 Test Teardown Test Teardown
17 CallHome with Incorrect global Credentials
18 [Documentation] Incorrect global credentials should result to mount failure. FAILED_AUTH_FAILURE should be the device status.
19 Apply SSH-based Call-Home configuration
20 Register global credentials for SSH call-home devices (APIv1) incorrect root
21 Register SSH call-home device in ODL controller (APIv1) netopeer2 ${NETOPEER_PUB_KEY}
22 ${stdout} ${stderr} ${rc}= SSHLibrary.Execute Command
23 ... docker-compose up -d
24 ... return_stdout=True
25 ... return_stderr=True
27 Wait Until Keyword Succeeds 90s 2s NetconfCallHome.Check Device Status FAILED_AUTH_FAILURE
28 Wait Until Keyword Succeeds
31 ... Run Keyword And Expect Error
33 ... Utils.Check For Elements At URI
34 ... ${mount_point_url}
35 ... ${netconf_mount_expected_values}
37 CallHome with Incorrect per-device Credentials
38 [Documentation] Incorrect per-device credentials should result to mount failure. FAILED_AUTH_FAILURE should be the device status.
39 Apply SSH-based Call-Home configuration
40 Register SSH call-home device in ODL controller (APIv1) netopeer2 ${NETOPEER_PUB_KEY} root incorrect
41 ${stdout} ${stderr} ${rc}= SSHLibrary.Execute Command
42 ... docker-compose up -d
43 ... return_stdout=True
44 ... return_stderr=True
46 Wait Until Keyword Succeeds 90s 2s NetconfCallHome.Check Device Status FAILED_AUTH_FAILURE
47 Wait Until Keyword Succeeds
50 ... Run Keyword And Expect Error
52 ... Utils.Check For Elements At URI
53 ... ${mount_point_url}
54 ... ${netconf_mount_expected_values}
56 CallHome with Incorrect Node-id
57 [Documentation] CallHome from device that does not have an entry in per-device credential with result to mount point failure.
58 Apply SSH-based Call-Home configuration
59 Register SSH call-home device in ODL controller (APIv1) incorrect_hostname ${EMPTY} root root
60 Register SSH call-home device in ODL controller (APIv1) netopeer2 ${NETOPEER_PUB_KEY}
61 ${stdout} ${stderr} ${rc}= SSHLibrary.Execute Command
62 ... docker-compose up -d
63 ... return_stdout=True
64 ... return_stderr=True
66 Wait Until Keyword Succeeds 90s 2s NetconfCallHome.Check Device Status DISCONNECTED
67 Wait Until Keyword Succeeds
70 ... Run Keyword And Expect Error
72 ... Utils.Check For Elements At URI
73 ... ${mount_point_url}
74 ... ${netconf_mount_expected_values}
76 CallHome with Rogue Devices
77 [Documentation] A Rogue Device will fail to callhome and wont be able to mount because the keys are not added in whitelist.
78 ... FAILED_NOT_ALLOWED should be the device status.
79 Apply SSH-based Call-Home configuration
80 Register SSH call-home device in ODL controller (APIv1) netopeer2 incorrect-key-value root root
81 ${stdout} ${stderr} ${rc}= SSHLibrary.Execute Command
82 ... docker-compose up -d
83 ... return_stdout=True
84 ... return_stderr=True
86 # Next line is commented due to https://jira.opendaylight.org/browse/NETCONF-574
87 Wait Until Keyword Succeeds 90s 2s NetconfCallHome.Check Device Status FAILED_NOT_ALLOWED
88 Wait Until Keyword Succeeds
91 ... Run Keyword And Expect Error
93 ... Utils.Check For Elements At URI
94 ... ${mount_point_url}
95 ... ${netconf_mount_expected_values}
97 Successful CallHome with correct global credentials
98 [Documentation] Device being in whitelist of the Call Home server along with correct global credentials will result to successful mount.
99 ... CONNECTED should be the device status.
100 Apply SSH-based Call-Home configuration
101 Register global credentials for SSH call-home devices (APIv1) root root
102 Register SSH call-home device in ODL controller (APIv1) netopeer2 ${NETOPEER_PUB_KEY}
103 ${stdout} ${stderr} ${rc}= SSHLibrary.Execute Command
104 ... docker-compose up -d
105 ... return_stdout=True
106 ... return_stderr=True
108 Wait Until Keyword Succeeds 90s 2s NetconfCallHome.Check Device Status CONNECTED
109 Wait Until Keyword Succeeds
112 ... Utils.Check For Elements At URI
113 ... ${mount_point_url}
114 ... ${netconf_mount_expected_values}
116 Successful CallHome with correct per-device credentials
117 [Documentation] Device being in whitelist of the Call Home server along with correct per-device credentials will result to successful mount.
118 ... CONNECTED should be the device status.
119 Apply SSH-based Call-Home configuration
120 Register SSH call-home device in ODL controller (APIv1) netopeer2 ${NETOPEER_PUB_KEY} root root
121 ${stdout} ${stderr} ${rc}= SSHLibrary.Execute Command
122 ... docker-compose up -d
123 ... return_stdout=True
124 ... return_stderr=True
126 Wait Until Keyword Succeeds 90s 2s NetconfCallHome.Check Device Status CONNECTED
127 Wait Until Keyword Succeeds
130 ... Utils.Check For Elements At URI
131 ... ${mount_point_url}
132 ... ${netconf_mount_expected_values}
134 CallHome over SSH with correct device credentials (APIv2)
135 [Documentation] Correct credentials should result to successful mount. CONNECTED should be the device status.
136 CompareStream.Run_Keyword_If_Less_Than_Silicon
137 ... BuiltIn.Pass_Execution
138 ... Test case valid only for versions silicon and above.
139 Apply SSH-based Call-Home configuration
140 Register SSH call-home device in ODL controller (APIv2) netopeer2 ${NETOPEER_PUB_KEY} root root
141 ${stdout} ${stderr} ${rc}= SSHLibrary.Execute Command
142 ... docker-compose up -d
143 ... return_stdout=True
144 ... return_stderr=True
146 Wait Until Keyword Succeeds 90s 2s NetconfCallHome.Check Device Status CONNECTED
147 Wait Until Keyword Succeeds
150 ... Utils.Check For Elements At URI
151 ... ${mount_point_url}
152 ... ${netconf_mount_expected_values}
154 CallHome over SSH with incorrect device credentials (APIv2)
155 [Documentation] Correct credentials should result to successful mount. CONNECTED should be the device status.
156 CompareStream.Run_Keyword_If_Less_Than_Silicon
157 ... BuiltIn.Pass_Execution
158 ... Test case valid only for versions silicon and above.
159 Apply SSH-based Call-Home configuration
160 Register SSH call-home device in ODL controller (APIv2) netopeer2 ${NETOPEER_PUB_KEY} root incorrect
161 ${stdout} ${stderr} ${rc}= SSHLibrary.Execute Command
162 ... docker-compose up -d
163 ... return_stdout=True
164 ... return_stderr=True
166 Wait Until Keyword Succeeds 90s 2s NetconfCallHome.Check Device Status FAILED_AUTH_FAILURE
167 Wait Until Keyword Succeeds
170 ... Run Keyword And Expect Error
172 ... Utils.Check For Elements At URI
173 ... ${mount_point_url}
174 ... ${netconf_mount_expected_values}
176 CallHome over SSH with correct global credentials (APIv2)
177 [Documentation] CallHome SSH device registered via APIv2 with global credentials from APIv1 should result to successful mount.
178 CompareStream.Run_Keyword_If_Less_Than_Silicon
179 ... BuiltIn.Pass_Execution
180 ... Test case valid only for versions silicon and above.
181 Apply SSH-based Call-Home configuration
182 Register global credentials for SSH call-home devices (APIv1) root root
183 Register SSH call-home device in ODL controller (APIv2) netopeer2 ${NETOPEER_PUB_KEY}
184 ${stdout} ${stderr} ${rc}= SSHLibrary.Execute Command
185 ... docker-compose up -d
186 ... return_stdout=True
187 ... return_stderr=True
189 Wait Until Keyword Succeeds 90s 2s NetconfCallHome.Check Device Status CONNECTED
190 Wait Until Keyword Succeeds
193 ... Utils.Check For Elements At URI
194 ... ${mount_point_url}
195 ... ${netconf_mount_expected_values}
197 CallHome over SSH with incorrect global credentials (APIv2)
198 [Documentation] CallHome SSH device registered via APIv2 with wrong global credentials from APIv1 should fail.
199 CompareStream.Run_Keyword_If_Less_Than_Silicon
200 ... BuiltIn.Pass_Execution
201 ... Test case valid only for versions silicon and above.
202 Apply SSH-based Call-Home configuration
203 Register global credentials for SSH call-home devices (APIv1) root incorrect
204 Register SSH call-home device in ODL controller (APIv2) netopeer2 ${NETOPEER_PUB_KEY}
205 ${stdout} ${stderr} ${rc}= SSHLibrary.Execute Command
206 ... docker-compose up -d
207 ... return_stdout=True
208 ... return_stderr=True
210 Wait Until Keyword Succeeds 90s 2s NetconfCallHome.Check Device Status FAILED_AUTH_FAILURE
211 Wait Until Keyword Succeeds
214 ... Run Keyword And Expect Error
216 ... Utils.Check For Elements At URI
217 ... ${mount_point_url}
218 ... ${netconf_mount_expected_values}
220 CallHome over TLS with correct certificate and key (APIv2)
221 [Documentation] Using correct certificate and key pair should result to successful mount. CONNECTED should be the device status.
222 CompareStream.Run_Keyword_If_Less_Than_Silicon
223 ... BuiltIn.Pass_Execution
224 ... Test case valid only for versions silicon and above.
225 Apply TLS-based Call-Home configuration
226 Register keys and certificates in ODL controller
227 Register TLS call-home device in ODL controller (APIv2) netopeer2 tls-device-key tls-device-certificate
228 ${stdout} ${stderr} ${rc}= SSHLibrary.Execute Command
229 ... docker-compose up -d
230 ... return_stdout=True
231 ... return_stderr=True
233 Wait Until Keyword Succeeds 90s 2s NetconfCallHome.Check Device Status CONNECTED
234 Wait Until Keyword Succeeds
237 ... Utils.Check For Elements At URI
238 ... ${mount_point_url}
239 ... ${netconf_mount_expected_values}