onap on kubernetes source files
[oom.git] / kubernetes / config / docker / init / src / config / robot / robot / resources / aai / create_service.robot
1 *** Settings ***
2 Documentation     Create A&AI Customer API.
3 ...
4 ...                   Create A&AI Customer API
5
6 Resource    ../json_templater.robot
7 Resource    aai_interface.robot
8 Library    OperatingSystem
9 Library    Collections
10 Library    UUID
11
12
13
14 *** Variables ***
15 ${INDEX PATH}     /aai/v8 
16 ${ROOT_SERVICE_PATH}  /service-design-and-creation/services
17
18 ${SYSTEM USER}    robot-ete
19 ${AAI_ADD_SERVICE_BODY}=    robot/assets/templates/aai/add_service_body.template
20
21 *** Keywords ***    
22 Create Service If Not Exists
23     [Documentation]    Creates a service in A&AI if it doesn't exist    
24     [Arguments]    ${service_type}
25     ${dict}=    Get Services
26     ${status}    ${value}=    Run Keyword And Ignore Error    Dictionary Should Contain Key    ${dict}    ${service_type} 
27     Run Keyword If    '${status}' == 'FAIL'    Create Service    ${service_type}
28     
29 Create Service
30     [Documentation]    Creates a service in A&AI        
31     [Arguments]    ${service_type}
32     ${uuid}=    Generate UUID 
33     ${data_template}=    OperatingSystem.Get File    ${AAI_ADD_SERVICE_BODY}  
34     ${arguments}=    Create Dictionary    service_type=${service_type}    UUID=${uuid}       
35     ${data}=    Fill JSON Template    ${data_template}    ${arguments}
36     ${fullpath}=    Catenate         ${INDEX PATH}${ROOT_SERVICE_PATH}/service/${uuid}
37         ${put_resp}=    Run A&AI Put Request     ${fullpath}    ${data}
38     Should Be Equal As Strings  ${put_resp.status_code}         201
39         [Return]  ${put_resp.status_code}
40
41     
42 Delete Service If Exists
43     [Documentation]    Deletes a service in A&AI if it exists   
44     [Arguments]    ${service_type}
45     ${dict}=    Get Services
46     ${status}    ${value}=    Run Keyword And Ignore Error    Dictionary Should Contain Key    ${dict}    ${service_type} 
47     Run Keyword If    '${status}' == 'PASS'    Delete Service    ${dict['${service_type}']}
48
49 Delete Service
50     [Documentation]    Delete  passed service in A&AI   
51     [Arguments]    ${dict}
52     ${uuid}=    Get From Dictionary    ${dict}     service-id 
53     ${resource_version}=    Get From Dictionary    ${dict}     resource-version
54     ${fullpath}=    Catenate         ${INDEX PATH}${ROOT_SERVICE_PATH}/service/${uuid}
55         ${resp}=    Run A&AI Delete Request    ${fullpath}    ${resource_version}    
56     Should Be Equal As Strings  ${resp.status_code}     204
57
58     
59 Get Services
60     [Documentation]    Creates a service in A&AI        
61         ${resp}=    Run A&AI Get Request     ${INDEX PATH}${ROOT_SERVICE_PATH}
62         ${dict}=    Create Dictionary    
63     ${status}    ${value}=    Run Keyword And Ignore Error    Should Be Equal As Strings        ${resp.status_code}     200
64     Run Keyword If    '${status}' == 'PASS'    Update Service Dictionary    ${dict}    ${resp.json()}      
65         [Return]  ${dict}
66
67 Update Service Dictionary
68     [Arguments]    ${dict}    ${json}
69     ${list}=    Evaluate    ${json}['service']
70     :for   ${map}    in    @{list}
71     \    ${status}    ${service_type}=     Run Keyword And Ignore Error    Get From Dictionary    ${map}    service-description
72     \    Run Keyword If    '${status}' == 'PASS'    Set To Dictionary    ${dict}    ${service_type}=${map}    
73     Log    ${dict}
74
75