blob: 5c3d86361c6225bdbf14415193f247d24dffedd2 [file] [log] [blame]
*** Settings ***
Documentation The main interface for interacting with APP-C. It handles low level stuff like managing the http request library and APP-C required fields
Library RequestsLibrary
Library UUID
Library OperatingSystem
Library StringTemplater
Resource global_properties.robot
*** Variables ***
${APPC_INDEX_PATH} /restconf
${APPC_HEALTHCHECK_OPERATION_PATH} /operations/SLI-API:healthcheck
${APPC_CREATE_MOUNTPOINT_PATH} /config/network-topology:network-topology/topology/topology-netconf/node/
${APPC_MOUNT_XML} robot/assets/templates/appc/vnf_mount.template
${APPC_ENDPOINT} ${GLOBAL_APPC_SERVER_PROTOCOL}://${GLOBAL_INJECTED_APPC_IP_ADDR}:${GLOBAL_APPC_SERVER_PORT}
*** Keywords ***
Run APPC Health Check
[Documentation] Runs an APPC healthcheck
${resp}= Run APPC Post Request ${APPC_INDEX PATH}${APPC_HEALTHCHECK_OPERATION_PATH} ${None}
Should Be Equal As Strings ${resp.status_code} 200
Should Be Equal As Strings ${resp.json()['output']['response-code']} 200
Run APPC Post Request
[Documentation] Runs an APPC post request
[Arguments] ${data_path} ${data} ${content}=json
${auth}= Create List ${GLOBAL_APPC_USERNAME} ${GLOBAL_APPC_PASSWORD}
Log Creating session ${APPC_ENDPOINT}
${session}= Create Session appc ${APPC_ENDPOINT} auth=${auth}
${uuid}= Generate UUID
${headers}= Create Dictionary Accept=application/${content} Content-Type=application/${content} X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID}
${resp}= Post Request appc ${data_path} data=${data} headers=${headers}
Log Received response from appc ${resp.text}
[Return] ${resp}
Run APPC Put Request
[Documentation] Runs an APPC post request
[Arguments] ${data_path} ${data} ${content}=xml
${auth}= Create List ${GLOBAL_APPC_USERNAME} ${GLOBAL_APPC_PASSWORD}
Log Creating session ${APPC_ENDPOINT}
${session}= Create Session appc ${APPC_ENDPOINT} auth=${auth}
${uuid}= Generate UUID
${headers}= Create Dictionary Accept=application/${content} Content-Type=application/${content} X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID}
${resp}= Put Request appc ${data_path} data=${data} headers=${headers}
Log Received response from appc ${resp.text}
[Return] ${resp}
Create Mount Point In APPC
[Documentation] Go tell APPC about the PGN we just spun up...
[Arguments] ${nodeid} ${host} ${port}=${GLOBAL_PGN_PORT} ${username}=admin ${password}=admin
${dict}= Create Dictionary nodeid=${nodeid} host=${host} port=${port} username=${username} password=${password}
${template}= OperatingSystem.Get File ${APPC_MOUNT_XML}
${data}= Template String ${template} ${dict}
${resp}= Run APPC Put Request ${APPC_INDEX PATH}${APPC_CREATE_MOUNTPOINT_PATH}${nodeid} ${data}
Should Be True 200 <= ${resp.status_code} < 300
[Return] ${resp}