aboutsummaryrefslogtreecommitdiffstats
path: root/resources/libraries/robot/honeycomb.robot
diff options
context:
space:
mode:
authorselias <samuel.elias@pantheon.tech>2016-03-21 13:06:49 +0100
committerGerrit Code Review <gerrit@fd.io>2016-04-05 14:09:02 +0000
commita1383e569b184808780fbe0405402dea584902a9 (patch)
tree622a2bc62acc4df38b2993edc6082fd4c02ab139 /resources/libraries/robot/honeycomb.robot
parent9551ac86e80d4a3ef779d556ecdc8d2afffae32b (diff)
Setup and check honeycomb on all DUTs
- methods implementing HTTP requests (PUT,GET,POST,DELETE) - methods for parsing HTTP responses - methods for honeycomb setup on DUT - updated constants.py - keywords for honeycomb setup and communication - simple honeycomb sanity test (not enabled for jenkins job runs) Change-Id: I589f0ca56cc01072b92fe9363aed16a4098aee40 Signed-off-by: selias <samuel.elias@pantheon.tech>
Diffstat (limited to 'resources/libraries/robot/honeycomb.robot')
-rw-r--r--resources/libraries/robot/honeycomb.robot68
1 files changed, 68 insertions, 0 deletions
diff --git a/resources/libraries/robot/honeycomb.robot b/resources/libraries/robot/honeycomb.robot
new file mode 100644
index 0000000000..98b8e23ae8
--- /dev/null
+++ b/resources/libraries/robot/honeycomb.robot
@@ -0,0 +1,68 @@
+# Copyright (c) 2016 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Library | resources/libraries/python/HoneycombSetup.py
+| Library | resources/libraries/python/HoneycombUtil.py
+| Library | resources/libraries/python/HTTPRequest.py
+
+*** Keywords ***
+| Setup Honeycomb service
+| | [Documentation] | *Setup environment for honeycomb testing*
+| | ...
+| | ... | _Setup steps:_
+| | ... | - 1. Login to each honeycomb node using ssh
+| | ... | - 2. Startup honeycomb service
+| | ... | - 3. Monitor service startup using HTTP GET request loop
+| | ... | Expected sequence of HTTP replies: connection refused -> 404 -> 401 -> 503 -> 200 (pass)
+| | ... | - 4. Configure honeycomb nodes using HTTP PUT request
+| | ...
+| | ... | _Used global constants and variables:_
+| | ... | - RESOURCES_TPL_HC - path to honeycomb templates directory
+| | ... | - HTTPCodes - HTTP protocol status codes
+| | ... | - ${nodes} - dictionary of all nodes in topology.YAML file
+| | ...
+| | Start Honeycomb on all DUTs | ${nodes}
+| | Wait until keyword succeeds | 3min | 10sec | Check honeycomb startup state | ${nodes}
+| | &{Header}= | Create dictionary | Content-Type=application/xml
+| | Add VPP to honeycomb network topology | ${nodes} | ${header}
+
+| Stop honeycomb service
+| | [Documentation] | *Cleanup environment after honeycomb testing*
+| | ...
+| | ... | _Teardown steps:_
+| | ... | - 1. Login to each honeycomb node using ssh
+| | ... | - 2. Stop honeycomb service
+| | ... | - 3. Monitor service shutdown using HTTP GET request loop
+| | ... | Expected sequence of HTTP replies: 200 -> 404 -> connection refused (pass)
+| | ...
+| | ... | _Used global constants and variables:_
+| | ... | - RESOURCES_TPL_HC - path to honeycomb templates directory
+| | ... | - HTTPCodes - HTTP protocol status codes
+| | ... | - ${nodes} - dictionary of all nodes in topology.YAML file
+| | ...
+| | Stop honeycomb on all DUTs | ${nodes}
+| | Wait until keyword succeeds | 1m | 5s | Check honeycomb shutdown state | ${nodes}
+
+| Honeycomb checks VPP node configuration
+| | [Documentation] | *Check configuration of honeycomb nodes*
+| | ...
+| | ... | _Arguments:_
+| | ... | - None
+| | ...
+| | ... | _Return value:_
+| | ... | - None
+| | ...
+| | ${reply}= | Get configured topology | ${nodes}
+| | :FOR | ${item} | IN | @{reply}
+| | | Should match regexp | ${item} | ^DUT\\d{1,2}$ \ No newline at end of file