summaryrefslogtreecommitdiffstats
path: root/robot/resources/aai/create_service.robot
blob: 1c036ec313fc6a1e08754ad8bb2e5422fe830985 (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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
*** Settings ***
Documentation   Create A&AI Customer API.

Resource    aai_interface.robot
Library    Collections
Library    ONAPLibrary.Utilities
Library    ONAPLibrary.Templating    WITH NAME    Templating
Library    ONAPLibrary.AAI    WITH NAME    AAI


*** Variables ***
${INDEX PATH}     /aai/v11
${ROOT_SERVICE_PATH}  /service-design-and-creation/services

${SYSTEM USER}    robot-ete
${AAI_ADD_SERVICE_BODY}=    aai/add_service_body.jinja

*** Keywords ***
Create Service If Not Exists
    [Documentation]    Creates a service in A&AI if it doesn't exist
    [Arguments]    ${service_type}
    ${dict}=    Get Services
    ${status}    ${value}=    Run Keyword And Ignore Error    Dictionary Should Contain Key    ${dict}    ${service_type}
    Run Keyword If    '${status}' == 'FAIL'    Create Service    ${service_type}

Create Service
    [Documentation]    Creates a service in A&AI
    [Arguments]    ${service_type}
    ${uuid}=    Generate UUID4
    ${arguments}=    Create Dictionary    service_type=${service_type}    UUID=${uuid}
    Templating.Create Environment    aai    ${GLOBAL_TEMPLATE_FOLDER}
    ${data}=   Templating.Apply Template    aai   ${AAI_ADD_SERVICE_BODY}    ${arguments}
    ${fullpath}=    Catenate         ${INDEX PATH}${ROOT_SERVICE_PATH}/service/${uuid}
  ${put_resp}=    AAI.Run Put Request     ${AAI_FRONTEND_ENDPOINT}    ${fullpath}    ${data}        auth=${GLOBAL_AAI_AUTHENTICATION}
    Should Be Equal As Strings  ${put_resp.status_code}   201
  [Return]  ${put_resp.status_code}

Delete Service If Exists
    [Documentation]    Deletes a service in A&AI if it exists
    [Arguments]    ${service_type}
    ${dict}=    Get Services
    ${status}    ${value}=    Run Keyword And Ignore Error    Dictionary Should Contain Key    ${dict}    ${service_type}
    Run Keyword If    '${status}' == 'PASS'    Delete Service    ${dict['${service_type}']}

Delete Service
    [Documentation]    Delete  passed service in A&AI
    [Arguments]    ${dict}
    ${uuid}=    Get From Dictionary    ${dict}     service-id
    ${resource_version}=    Get From Dictionary    ${dict}     resource-version
    ${fullpath}=    Catenate         ${INDEX PATH}${ROOT_SERVICE_PATH}/service/${uuid}
  ${resp}=    AAI.Run Delete Request    ${AAI_FRONTEND_ENDPOINT}    ${fullpath}    ${resource_version}        auth=${GLOBAL_AAI_AUTHENTICATION}
    Should Be Equal As Strings  ${resp.status_code}   204

Get Services
    [Documentation]    Creates a service in A&AI
  ${resp}=    AAI.Run Get Request     ${AAI_FRONTEND_ENDPOINT}    ${INDEX PATH}${ROOT_SERVICE_PATH}        auth=${GLOBAL_AAI_AUTHENTICATION}
  ${dict}=    Create Dictionary
    ${status}    ${value}=    Run Keyword And Ignore Error    Should Be Equal As Strings  ${resp.status_code}   200
    Run Keyword If    '${status}' == 'PASS'    Update Service Dictionary    ${dict}    ${resp.json()}
  [Return]  ${dict}

Get Service Id
    [Documentation]    Gets a service id in A&AI
    [Arguments]    ${service_description}
  ${resp}=    AAI.Run Get Request     ${AAI_FRONTEND_ENDPOINT}    ${INDEX PATH}${ROOT_SERVICE_PATH}        auth=${GLOBAL_AAI_AUTHENTICATION}
  ${resp_json}=  Set Variable  ${resp.json()}
    @{list}=  Copy List   ${resp_json['service']}
    :FOR   ${map}    IN    @{list}
    \    ${service_type}=    Get From Dictionary    ${map}    service-description
    \    ${service_id}=     Get From Dictionary    ${map}    service-id
    \    ${id}   Run Keyword If    '${service_type}' == '${service_description}'    Set Variable    ${service_id}
  [Return]  ${id}

Update Service Dictionary
    [Arguments]    ${dict}    ${json}
    @{list}=  Copy List   ${json['service']}
    :FOR   ${map}    IN    @{list}
    \    ${status}    ${service_type}=     Run Keyword And Ignore Error    Get From Dictionary    ${map}    service-description
    \    Run Keyword If    '${status}' == 'PASS'    Set To Dictionary    ${dict}    ${service_type}=${map}
    Log    ${dict}