*** Settings *** Documentation Basic Tests for NIC Console Commands. ... ... Copyright (c) 2015 Hewlett-Packard Development Company, L.P. and others. All rights reserved. ... ... This program and the accompanying materials are made available under the ... terms of the Eclipse Public License v1.0 which accompanies this distribution, ... and is available at http://www.eclipse.org/legal/epl-v10.html Suite Setup Setup NIC Console Environment Library SSHLibrary Library Collections Library OperatingSystem Library ../../../libraries/Common.py Resource ../../../libraries/KarafKeywords.robot Resource ../../../libraries/Utils.robot Variables ../../../variables/Variables.py *** Variables *** @{intent1} 10.0.0.5 10.0.0.2,10.0.0.3 ALLOW @{intent2} 10.0.0.5 10.0.0.2,10.0.0.10 BLOCK @{intent3} 10.0.0.1,10.0.0.4 10.0.0.2 ALLOW @{all_intents} ${intent1} ${intent2} ${intent3} @{all_intents_ids} ${intent_validation1} from [10.0.0.1, 10.0.0.4] to [10.0.0.2] apply ALLOW ${intent_validation2} from [10.0.0.5] to [10.0.0.2] apply BLOCK ${intent_validation3} from [10.0.0.5] to [10.0.0.3] apply ALLOW ${intent_validation4} from [10.0.0.5] to [10.0.0.10] apply BLOCK @{all_intent_validations} ${intent_validation1} ${intent_validation2} ${intent_validation3} ${intent_validation4} *** Test Cases *** Verify NIC Command Add and Remove [Documentation] Verification of NIC Console command add and remove. It first creates the intents ... and stores the intent ids, then verifies that the intents were added. Finally, it compiles the intents ... to verify that intents were properly merged and also validates intents were removed at the end per the cleanup procedure. [Tags] NIC : FOR ${intent} IN @{all_intents} \ ${id}= Add Intent @{intent} \ Append To List ${all_intents_ids} ${id} ${size}= Get Length ${all_intents} : FOR ${index} IN RANGE ${size} \ ${intent}= Get From List ${all_intents} ${index} \ ${intent_id}= Get From List ${all_intents_ids} ${index} \ Verify Intent Added ${intent_id} ${intent} ${output}= Issue Command On Karaf Console intent:compile : FOR ${valid_intent} IN @{all_intent_validations} \ Should Contain ${output} ${valid_intent} : FOR ${intent_id} IN @{all_intents_ids} \ Remove Intent ${intent_id} ${output}= Issue Command On Karaf Console intent:list -c : FOR ${intent_id} IN @{all_intents_ids} \ Should Not Contain ${output} ${id} *** Keywords *** Setup NIC Console Environment [Documentation] Installing NIC Console related features (odl-nic-core, odl-nic-console) Install a Feature odl-nic-core Install a Feature odl-nic-console Start Suite Verify Feature Is Installed odl-nic-core Verify Feature Is Installed odl-nic-console Add Intent [Arguments] ${intent_from} ${intent_to} ${intent_permission} [Documentation] Adds an intent to the controller, and returns the id of the intent created. ${output}= Issue Command On Karaf Console intent:add -f ${intent_from} -t ${intent_to} -a ${intent_permission} Should Contain ${output} Intent created ${output}= Fetch From Left ${output} ) ${output_split}= Split String ${output} ${SPACE} ${id}= Get From List ${output_split} 3 [Return] ${id} Verify Intent Added [Arguments] ${id} ${intent} [Documentation] This will check if the id exists via intent:list -c, then compares intent details with arguments passed in with Add Intent ${output}= Issue Command On Karaf Console intent:list -c Should Contain ${output} ${id} ${output}= Issue Command On Karaf Console intent:show ${id} ${out}= Get Lines Containing String ${output} Value: ${out_intent_from}= Get Line ${out} 0 ${out_intent_to}= Get Line ${out} 1 ${out_intent_permission}= Get Line ${out} 2 ${intent_from}= Get From List ${intent} 0 ${intent_to}= Get From List ${intent} 1 ${intent_permission}= Get From List ${intent} 2 Should Contain ${out_intent_from} ${intent_from} Should Contain ${out_intent_to} ${intent_to} Should Contain ${out_intent_permission} ${intent_permission} Remove Intent [Arguments] ${id} [Documentation] Removes an intent from the controller via the provided intent id. ${output}= Issue Command On Karaf Console intent:remove ${id} Should Contain ${output} Intent successfully removed