290725e309a6f2cfc3fdaf8e574400676ed40eb5
[csit.git] / tests / vpp / func / honeycomb / mgmt-cfg-bgp-apihc-apivat-func.robot
1 # Copyright (c) 2017 Cisco and/or its affiliates.
2 # Licensed under the Apache License, Version 2.0 (the "License");
3 # you may not use this file except in compliance with the License.
4 # You may obtain a copy of the License at:
5 #
6 #     http://www.apache.org/licenses/LICENSE-2.0
7 #
8 # Unless required by applicable law or agreed to in writing, software
9 # distributed under the License is distributed on an "AS IS" BASIS,
10 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11 # See the License for the specific language governing permissions and
12 # limitations under the License.
13
14 *** Variables ***
15 # Interface to run tests on.
16 | ${interface}= | ${node['interfaces']['port1']['name']}
17
18 *** Settings ***
19 | Resource | resources/libraries/robot/shared/default.robot
20 | Resource | resources/libraries/robot/honeycomb/honeycomb.robot
21 | Resource | resources/libraries/robot/honeycomb/interfaces.robot
22 | Resource | resources/libraries/robot/honeycomb/bgp.robot
23 | Resource | resources/libraries/robot/honeycomb/routing.robot
24 | Variables | resources/test_data/honeycomb/bgp.py
25 | ...
26 | Suite Setup | Run Keywords
27 | ... | Enable Honeycomb Feature | ${node} | BGP | AND
28 | ... | Set Up Honeycomb Functional Test Suite | ${node}
29 | ...
30 | Suite Teardown | Run Keywords
31 | ... | Tear Down Honeycomb Functional Test Suite | ${node} | AND
32 | ... | Disable Honeycomb Feature | ${node} | BGP
33 | ...
34 # HONEYCOMB-409: ODL client fails to parse requests to BGP instance node
35 | Force Tags | HC_FUNC | EXPECTED_FAILING
36 | ...
37 | Documentation | *Honeycomb BGP management test suite.*
38
39 *** Test Cases ***
40 | TC01: Honeycomb configures BGP peer - Internal
41 | | [Documentation] | Check if Honeycomb can configure an internal BGP peer.
42 | | ...
43 | | When Honeycomb adds BGP peer
44 | | ... | ${node} | ${address_internal} | ${peer_internal}
45 | | Then BGP peer from Honeycomb should be
46 | | ... | ${node} | ${address_internal} | ${peer_internal}
47
48 | TC03: Honeycomb removes peer configuration
49 | | [Documentation] | Check if Honeycomb can remove a configured BGP peer.
50 | | ...
51 | | Given BGP peer from Honeycomb should be
52 | | ... | ${node} | ${address_internal} | ${peer_internal}
53 | | When Honeycomb removes BGP peer | ${node} | ${address_internal}
54 | | Then No BGP peers should be configured | ${node}
55
56 | TC02: Honeycomb updates existing BGP peer - Internal
57 | | [Documentation] | Check if Honeycomb can update an existing BGP peer.
58 | | ...
59 | | [Teardown] | Honeycomb removes BGP peer | ${node} | ${address_internal}
60 | | ...
61 | | Given No BGP peers should be configured | ${node}
62 | | When Honeycomb adds BGP peer
63 | | ... | ${node} | ${address_internal} | ${peer_internal}
64 | | And Honeycomb adds BGP peer
65 | | ... | ${node} | ${address_internal} | ${peer_internal_update}
66 | | Then BGP peer from Honeycomb should be
67 | | ... | ${node} | ${address_internal} | ${peer_internal_update}
68
69 | TC04: Honeycomb configures BGP peer - Application
70 | | [Documentation] | Check if Honeycomb can configure an application BGP peer.
71 | | ...
72 | | [Teardown] | Honeycomb removes BGP peer | ${node} | ${address_application}
73 | | ...
74 | | Given No BGP peers should be configured | ${node}
75 | | When Honeycomb adds BGP peer
76 | | ... | ${node} | ${address_application} | ${peer_application}
77 | | Then BGP peer from Honeycomb should be
78 | | ... | ${node} | ${address_application} | ${peer_application}
79
80 | TC05: Honeycomb configures a second BGP peer
81 | | [Documentation] | Check if Honeycomb can configure more than one BGP peer.
82 | | ...
83 | | [Teardown] | Run Keywords
84 | | ... | Honeycomb removes BGP peer | ${node} | ${address_internal} | AND
85 | | ... | Honeycomb removes BGP peer | ${node} | ${address_internal2}
86 | | ...
87 | | Given No BGP peers should be configured | ${node}
88 | | When Honeycomb adds BGP peer
89 | | ... | ${node} | ${address_internal} | ${peer_internal}
90 | | And Honeycomb adds BGP peer
91 | | ... | ${node} | ${address_internal2} | ${peer_internal2}
92 | | Then BGP peer from Honeycomb should be
93 | | ... | ${node} | ${address_internal} | ${peer_internal}
94 | | And BGP peer from Honeycomb should be
95 | | ... | ${node} | ${address_internal2} | ${peer_internal2}
96
97 | TC06: Honeycomb configures IPv4 route using BGP
98 | | [Documentation] | Check if Honeycomb can configure a BGP route under a peer.
99 | | ...
100 | | Given Honeycomb adds BGP peer
101 | | ... | ${node} | ${address_internal} | ${peer_internal}
102 | | When Honeycomb configures BGP route
103 | | ... | ${node} | ${address_internal} | ${route_data_ipv4}
104 | | ... | ${route_address_ipv4} | ${route_id_ipv4} | ipv4
105 | | Then BGP Route from Honeycomb should be
106 | | ... | ${node} | ${address_internal} | ${route_data_ipv4}
107 | | ... | ${route_address_ipv4} | ${route_id_ipv4} | ipv4
108
109 | TC08: Honeycomb removes IPv4 route configuration
110 | | [Documentation] | Check if Honeycomb can remove a configured BGP route.
111 | | ...
112 | | Given BGP peer from Honeycomb should be
113 | | ... | ${node} | ${address_internal} | ${peer_internal}
114 | | And BGP Route from Honeycomb should be
115 | | ... | ${node} | ${address_internal} | ${route_data_ipv4}
116 | | ... | ${route_address_ipv4} | ${route_id_ipv4} | ipv4
117 | | When Honeycomb removes BGP route | ${node} | ${address_internal}
118 | | ... | ${route_address_ipv4} | ${route_id_ipv4} | ipv4
119 | | Then No BGP Routes Should be Configured
120 | | ... | ${node} | ${address_internal} | ipv4
121
122 | TC07: Honeycomb updates existing IPv4 route using BGP
123 | | [Documentation] | Check if Honeycomb can update an existing BGP route.
124 | | ...
125 | | [Teardown] | Honeycomb removes BGP route | ${node} | ${address_internal}
126 | | ... | ${route_address_ipv4} | ${route_id_ipv4} | ipv4
127 | | ...
128 | | Given BGP peer from Honeycomb should be
129 | | ... | ${node} | ${address_internal} | ${peer_internal}
130 | | And No BGP Routes Should be Configured
131 | | ... | ${node} | ${address_internal} | ipv4
132 | | When Honeycomb configures BGP route
133 | | ... | ${node} | ${address_internal} | ${route_data_ipv4}
134 | | ... | ${route_address_ipv4} | ${route_id_ipv4} | ipv4
135 | | And Honeycomb configures BGP route
136 | | ... | ${node} | ${address_internal} | ${route_data_ipv4_update}
137 | | ... | ${route_address_ipv4} | ${route_id_ipv4} | ipv4
138 | | Then BGP Route from Honeycomb should be
139 | | ... | ${node} | ${address_internal} | ${route_data_ipv4_update}
140 | | ... | ${route_address_ipv4} | ${route_id_ipv4} | ipv4
141
142 | TC09: Honeycomb configures a second IPv4 route
143 | | [Documentation] | Check if Honeycomb can configure more than one BGP route.
144 | | ...
145 | | [Teardown] | Run Keywords
146 | | ... | Honeycomb removes BGP route | ${node} | ${address_internal}
147 | | ... | ${route_address_ipv4} | ${route_id_ipv4} | ipv4 | AND
148 | | ... | Honeycomb removes BGP route | ${node} | ${address_internal}
149 | | ... | ${route_address_ipv4_2} | ${route_id_ipv4_2} | ipv4
150 | | ...
151 | | Given BGP peer from Honeycomb should be
152 | | ... | ${node} | ${address_internal} | ${peer_internal}
153 | | When Honeycomb configures BGP route
154 | | ... | ${node} | ${address_internal} | ${route_data_ipv4}
155 | | ... | ${route_address_ipv4} | ${route_id_ipv4} | ipv4
156 | | And Honeycomb configures BGP route
157 | | ... | ${node} | ${address_internal} | ${route_data_ipv4_2}
158 | | ... | ${route_address_ipv4_2} | ${route_id_ipv4_2} | ipv4
159 | | Then BGP Route from Honeycomb should be
160 | | ... | ${node} | ${address_internal} | ${route_data_ipv4}
161 | | ... | ${route_address_ipv4} | ${route_id_ipv4} | ipv4
162 | | And BGP Route from Honeycomb should be
163 | | ... | ${node} | ${address_internal} | ${route_data_ipv4_2}
164 | | ... | ${route_address_ipv4_2} | ${route_id_ipv4_2} | ipv4

©2016 FD.io a Linux Foundation Collaborative Project. All Rights Reserved.
Linux Foundation is a registered trademark of The Linux Foundation. Linux is a registered trademark of Linus Torvalds.
Please see our privacy policy and terms of use.