blob: 4dd3e6dd9fb8cedee549d1765ab5b377092bed80 [file] [log] [blame]
You Wang304d3f92017-12-14 16:13:31 -08001# Copyright 2017-present Radisys Corporation
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15
16*** Settings ***
17Documentation Test suite for checking results collected by `make collect-diag` command
18Library OperatingSystem
19Library ../cord-api/Framework/utils/onosUtils.py
20Library ../cord-api/Framework/utils/utils.py
21Resource ../cord-api/Framework/utils/utils.robot
22
23*** Variables ***
24${DOCKER_CONTAINERS_FILE} ${CURDIR}/dockerContainers.json
25${ONOS_APPS_FILE} ${CURDIR}/onosApps.json
26${CORD_PROFILE} rcord
27${CORD_SCENARIO} cord
28
29*** Test Cases ***
30Verify Docker Containers
31 [Documentation] Verify expected containers are up and running
32 ${dockerContainersExpected} utils.jsonToList ${DOCKER_CONTAINERS_FILE} docker-containers-${CORD_PROFILE}
33 : FOR ${container} IN @{dockerContainersExpected}
34 \ Run Keyword And Continue On Failure Verify Docker Container ${container}
35
36Verify Synchronizer Logs
37 [Documentation] Verify synchronizer logs are correct
38 ${synchronizerLogs} utils.readFiles /home/cord/diag-*/docker/*synchronizer*
39 : FOR ${key} IN @{synchronizerLogs.keys()}
40 \ @{name}= Split String ${key} -synchronizer
41 \ @{name}= Split String From Right @{name}[0] _ 1
42 \ ${synchronizerLog}= Get From Dictionary ${synchronizerLogs} ${key}
43 \ Run Keyword And Continue On Failure Verify Synchronizer Log ${name} ${synchronizerLog}
44
45Verify ONOS
46 [Documentation] Verify ONOS status, applications and logs
47 Run Keyword If '${CORD_PROFILE}' != 'ecord-global' Verify ONOS-Fabric ${CORD_PROFILE}
48 Verify ONOS-CORD ${CORD_PROFILE}
49
50*** Keywords ***
51Verify Docker Container
52 [Arguments] ${container}
53 OperatingSystem.File Should Exist /home/cord/diag-*/docker/${container}
54
55Verify Synchronizer Log
56 [Arguments] ${name} ${log}
57 ${config} utils.readFile /opt/cord/orchestration/xos_services/*/xos/synchronizer/@{name}[1]_config.yaml
58 ${match1}= Get Lines Matching Regexp ${config} ^steps_dir: ".*"$
59 ${match2}= Get Lines Matching Regexp ${config} ^model_policies_dir: ".*"$
60 Run Keyword If '${match1}' != '${EMPTY}' Should Contain ${log} Waiting for event or timeout msg= "Waiting for event or timeout" not found in @{name}[1] synchronizer log
61 ... ELSE IF '${match2}' != '${EMPTY}' Should Contain ${log} Loaded model policies msg= "Loaded model policies" not found in @{name}[1] synchronizer log
62
63Verify ONOS-Fabric
64 [Arguments] ${cord_profile}
65 Run Keyword And Continue On Failure Verify ONOS Status onos-fabric
66 Run Keyword And Continue On Failure Verify ONOS Applications onos-fabric ${cord_profile}
67 Run Keyword And Continue On Failure Verify ONOS Log onos-fabric
68
69Verify ONOS-CORD
70 [Arguments] ${cord_profile}
71 Run Keyword And Continue On Failure Verify ONOS Status onos-cord
72 Run Keyword And Continue On Failure Verify ONOS Applications onos-cord ${cord_profile}
73 Run Keyword And Continue On Failure Verify ONOS Log onos-cord
74
75Verify ONOS Status
76 [Arguments] ${onosName}
77 ${onosStatus} utils.readFile /home/cord/diag-*/${onosName}/nodes
78 Should Contain ${onosStatus} READY
79
80Verify ONOS Applications
81 [Arguments] ${onosName} ${cordProfile}
82 ${onosAppsExpected} utils.jsonToList ${ONOS_APPS_FILE} ${onosName}-${cordProfile}
83 ${onosApps} utils.readFile /home/cord/diag-*/${onosName}/apps_-s_-a
84 : FOR ${app} IN @{onosAppsExpected}
85 \ Should Contain ${onosApps} ${app}
86
87Verify ONOS Log
88 [Arguments] ${onosName}
89 ${onosLog} utils.readFile /home/cord/diag-*/${onosName}/log_display
90 Should Not Contain ${onosLog} ERROR