summaryrefslogtreecommitdiffstats
path: root/robot/resources/appc_interface.robot
blob: 289d1d7ce75f241b4710cb5ceb08b1f2a8c3ac5a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
*** 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 Equal As Strings  ${resp.status_code}   200
    [Return]     ${resp}