2 Documentation Test suite for SFC Service Function Chains, Operates Chains from Restconf APIs.
3 Suite Setup Create Session session http://${CONTROLLER}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS}
4 Suite Teardown Delete All Sessions
7 Library OperatingSystem
8 Library RequestsLibrary
9 Variables ../../../variables/Variables.py
10 Resource ../../../libraries/Utils.robot
13 ${SERVICE_CHAINS_URI} /restconf/config/service-function-chain:service-function-chains/
14 ${SERVICE_CHAINS_FILE} ../../../variables/sfc/service-function-chains.json
15 ${SERVICE_CHAIN100_URI} /restconf/config/service-function-chain:service-function-chains/service-function-chain/SFC100
16 ${SERVICE_CHAIN100_FILE} ../../../variables/sfc/sfc_chain_100.json
17 ${SERVICE_CHAIN100_SFIDS_URI} /restconf/config/service-function-chain:service-function-chains/service-function-chain/SFC100/sfc-service-function/ids-abstract100
18 ${SERVICE_CHAIN100_SFIDS_FILE} ../../../variables/sfc/sfc_chain_100_sfids.json
21 Put Service Function Chains
22 [Documentation] Add Service Function Chains from JSON file
23 Add Elements To URI From File ${SERVICE_CHAINS_URI} ${SERVICE_CHAINS_FILE}
24 ${body} OperatingSystem.Get File ${SERVICE_CHAINS_FILE}
25 ${jsonbody} To Json ${body}
26 ${chains} Get From Dictionary ${jsonbody} service-function-chains
27 ${resp} RequestsLibrary.Get session ${SERVICE_CHAINS_URI}
28 Should Be Equal As Strings ${resp.status_code} 200
29 ${result} To JSON ${resp.content}
30 ${chain} Get From Dictionary ${result} service-function-chains
31 Lists Should be Equal ${chain} ${chains}
33 Delete All Service Function Chains
34 [Documentation] Delete all Service Function Chains
35 ${resp} RequestsLibrary.Get session ${SERVICE_CHAINS_URI}
36 Should Be Equal As Strings ${resp.status_code} 200
37 Remove All Elements At URI ${SERVICE_CHAINS_URI}
38 ${resp} RequestsLibrary.Get session ${SERVICE_CHAINS_URI}
39 Should Be Equal As Strings ${resp.status_code} 404
41 Get one Service Function Chain
42 [Documentation] Get one Service Function Chain
43 Remove All Elements At URI ${SERVICE_CHAINS_URI}
44 Add Elements To URI From File ${SERVICE_CHAINS_URI} ${SERVICE_CHAINS_FILE}
45 ${elements}= Create List SFC1 dpi-abstract1 napt44-abstract1 firewall-abstract1
46 Check For Elements At URI ${SERVICE_CHAINS_URI}service-function-chain/SFC1 ${elements}
48 Get A Non-existing Service Function Chain
49 [Documentation] Get A Non-existing Service Function Chain
50 Remove All Elements At URI ${SERVICE_CHAINS_URI}
51 Add Elements To URI From File ${SERVICE_CHAINS_URI} ${SERVICE_CHAINS_FILE}
52 ${resp} RequestsLibrary.Get session ${SERVICE_CHAINS_URI}service-function-chain/non-existing-sfc
53 Should Be Equal As Strings ${resp.status_code} 404
55 Delete A Service Function Chain
56 [Documentation] Delete A Service Function Chain
57 Remove All Elements At URI ${SERVICE_CHAINS_URI}
58 Add Elements To URI From File ${SERVICE_CHAINS_URI} ${SERVICE_CHAINS_FILE}
59 ${resp} RequestsLibrary.Get session ${SERVICE_CHAINS_URI}service-function-chain/SFC1
60 Should Be Equal As Strings ${resp.status_code} 200
61 Remove All Elements At URI ${SERVICE_CHAINS_URI}service-function-chain/SFC1
62 ${elements}= Create List SFC1 dpi-abstract1 napt44-abstract1 firewall-abstract1
63 Check For Elements Not At URI ${SERVICE_CHAINS_URI} ${elements}
65 Delete A Non-existing Service Function Chain
66 [Documentation] Delete A Non existing Service Function Chain
67 Remove All Elements At URI ${SERVICE_CHAINS_URI}
68 Add Elements To URI From File ${SERVICE_CHAINS_URI} ${SERVICE_CHAINS_FILE}
69 ${body} OperatingSystem.Get File ${SERVICE_CHAINS_FILE}
70 ${jsonbody} To Json ${body}
71 ${chains} Get From Dictionary ${jsonbody} service-function-chains
72 Remove All Elements At URI ${SERVICE_CHAINS_URI}service-function-chain/non-existing-sfc
73 ${resp} RequestsLibrary.Get session ${SERVICE_CHAINS_URI}
74 Should Be Equal As Strings ${resp.status_code} 200
75 ${result} To JSON ${resp.content}
76 ${chain} Get From Dictionary ${result} service-function-chains
77 Lists Should be Equal ${chain} ${chains}
79 Put one Service Function Chain
80 [Documentation] Put one Service Function Chain
81 Remove All Elements At URI ${SERVICE_CHAINS_URI}
82 Add Elements To URI From File ${SERVICE_CHAIN100_URI} ${SERVICE_CHAIN100_FILE}
83 ${elements}= Create List SFC100 dpi-abstract100 napt44-abstract100 firewall-abstract100
84 Check For Elements At URI ${SERVICE_CHAIN100_URI} ${elements}
85 Check For Elements At URI ${SERVICE_CHAINS_URI} ${elements}
87 Get one Service Function From Chain
88 [Documentation] Get one Service Function From Chain
89 Remove All Elements At URI ${SERVICE_CHAINS_URI}
90 Add Elements To URI From File ${SERVICE_CHAINS_URI} ${SERVICE_CHAINS_FILE}
91 ${elements}= Create List dpi-abstract1 "order":0 service-function-type:dpi
92 Check For Elements At URI ${SERVICE_CHAINS_URI}service-function-chain/SFC1/sfc-service-function/dpi-abstract1 ${elements}
94 Get A Non-existing Service Function From Chain
95 [Documentation] Get A Non-existing Service Function From Chain
96 Remove All Elements At URI ${SERVICE_CHAINS_URI}
97 Add Elements To URI From File ${SERVICE_CHAINS_URI} ${SERVICE_CHAINS_FILE}
98 ${resp} RequestsLibrary.Get session ${SERVICE_CHAINS_URI}service-function-chain/SFC1/sfc-service-function/non-existing-sft
99 Should Be Equal As Strings ${resp.status_code} 404
101 Delete A Service Function From Chain
102 [Documentation] Delete A Service Function From Chain
103 Remove All Elements At URI ${SERVICE_CHAINS_URI}
104 Add Elements To URI From File ${SERVICE_CHAINS_URI} ${SERVICE_CHAINS_FILE}
105 Remove All Elements At URI ${SERVICE_CHAINS_URI}service-function-chain/SFC1/sfc-service-function/dpi-abstract1
106 ${resp} RequestsLibrary.Get session ${SERVICE_CHAINS_URI}
107 Should Be Equal As Strings ${resp.status_code} 200
108 Should Contain ${resp.content} SFC1
109 ${elements}= Create List dpi-abstract1 service-function-type:dpi
110 Check For Elements Not At URI ${SERVICE_CHAINS_URI}service-function-chain/SFC1/ ${elements}
112 Delete A Non-existing Service Function From Chain
113 [Documentation] Delete A Non existing Service Function From Chain
114 Remove All Elements At URI ${SERVICE_CHAINS_URI}
115 Add Elements To URI From File ${SERVICE_CHAINS_URI} ${SERVICE_CHAINS_FILE}
116 Remove All Elements At URI ${SERVICE_CHAINS_URI}service-function-chain/SFC1/sfc-service-function/non-existing-sft
117 ${elements}= Create List dpi-abstract1 napt44-abstract1 firewall-abstract1
118 Check For Elements At URI ${SERVICE_CHAINS_URI}service-function-chain/SFC1 ${elements}
119 Check For Elements At URI ${SERVICE_CHAINS_URI} ${elements}
121 Put one Service Function into Chain
122 [Documentation] Put one Service Function Chain
123 Remove All Elements At URI ${SERVICE_CHAINS_URI}
124 Add Elements To URI From File ${SERVICE_CHAINS_URI} ${SERVICE_CHAINS_FILE}
125 Add Elements To URI From File ${SERVICE_CHAIN100_SFIDS_URI} ${SERVICE_CHAIN100_SFIDS_FILE}
126 ${elements}= Create List ids-abstract100 "order":3 service-function-type:ids
127 Check For Elements At URI ${SERVICE_CHAIN100_SFIDS_URI} ${elements}
128 Check For Elements At URI ${SERVICE_CHAIN100_URI} ${elements}
129 Check For Elements At URI ${SERVICE_CHAINS_URI} ${elements}
131 Clean All Service Function Chains After Tests
132 [Documentation] Delete all Service Function Chains From Datastore After Tests
133 Remove All Elements At URI ${SERVICE_CHAINS_URI}