Release image version 1.12.2
[testsuite.git] / robot / testsuites / update_onap_page.robot
1 *** Settings ***
2 Documentation     Initializes ONAP Test Web Page and Password
3
4 Library    Collections
5 Library    OperatingSystem
6 Library    ONAPLibrary.Templating    WITH NAME    Templating
7 Resource          ../resources/openstack/keystone_interface.robot
8 Resource          ../resources/openstack/nova_interface.robot
9
10
11 Test Timeout    5 minutes
12
13 *** Variables ***
14 ${URLS_HTML_TEMPLATE}   web/index.html.jinja
15
16 ${HOSTS_PREFIX}   vm
17 ${WEB_USER}       test
18 ${WEB_PASSWORD}
19
20 ${URLS_HTML}   html/index.html
21 ${CREDENTIALS_FILE}   /etc/lighttpd/authorization
22 #${CREDENTIALS_FILE}   authorization
23
24 *** Test Cases ***
25 Update ONAP Page
26     [Tags]   UpdateWebPage
27     Run Keyword If   '${WEB_PASSWORD}' == ''   Fail   "WEB Password must not be empty"
28     Run Openstack Auth Request    auth
29     ${server_map}=    Get Openstack Servers    auth
30     ${oam_ip_map}=   Create Dictionary
31     Set To Dictionary    ${oam_ip_map}   10.0.0.1=onapdns
32     Set To Dictionary    ${oam_ip_map}   ${GLOBAL_INJECTED_AAI_IP_ADDR}=aai1
33     Set To Dictionary    ${oam_ip_map}   ${GLOBAL_INJECTED_DCAE_IP_ADDR}=dcae_controller
34     Set To Dictionary    ${oam_ip_map}   ${GLOBAL_INJECTED_SO_APIHAND_IP_ADDR}=so
35     Set To Dictionary    ${oam_ip_map}   ${GLOBAL_INJECTED_MR_IP_ADDR}=message_router
36     Set To Dictionary    ${oam_ip_map}   ${GLOBAL_INJECTED_BC_IP_ADDR}=bus_controller
37     Set To Dictionary    ${oam_ip_map}   ${GLOBAL_INJECTED_POLICY_IP_ADDR}=policy
38     Set To Dictionary    ${oam_ip_map}   ${GLOBAL_INJECTED_PORTAL_IP_ADDR}=portal
39     Set To Dictionary    ${oam_ip_map}   ${GLOBAL_INJECTED_SDC_IP_ADDR}=sdc
40     Set To Dictionary    ${oam_ip_map}   ${GLOBAL_INJECTED_SDNC_IP_ADDR}=sdnc
41     Set To Dictionary    ${oam_ip_map}   ${GLOBAL_INJECTED_MSB_IP_ADDR}=openo
42     Set To Dictionary    ${oam_ip_map}   ${GLOBAL_INJECTED_CLAMP_IP_ADDR}=clamp
43     Set To Dictionary    ${oam_ip_map}   ${GLOBAL_INJECTED_VID_IP_ADDR}=vid
44     Set To Dictionary    ${oam_ip_map}   10.0.4.105=dcae_cdap
45     Set To Dictionary    ${oam_ip_map}   10.0.4.102=dcae_coll
46     Set To Dictionary    ${oam_ip_map}   10.0.10.1=robot
47
48     ${values}=   Create Dictionary
49     ${keys}=    Get Dictionary Keys    ${oam_ip_map}
50     :FOR   ${oam_ip}   IN    @{keys}
51     \    ${value_name}=   Get From Dictionary    ${oam_ip_map}   ${oam_ip}
52     \    Set Public Ip    ${server_map}    ${oam_ip}   ${value_name}   ${values}
53     Log    ${values}
54     Run Keyword If   '${WEB_PASSWORD}' != ''   Create File   ${CREDENTIALS_FILE}   ${WEB_USER}:${WEB_PASSWORD}
55     Set To Dictionary    ${values}   GLOBAL_INJECTED_ARTIFACTS_VERSION=${GLOBAL_INJECTED_ARTIFACTS_VERSION}
56     Set To Dictionary    ${values}   GLOBAL_INJECTED_NETWORK=${GLOBAL_INJECTED_NETWORK}
57     Set To Dictionary    ${values}   GLOBAL_INJECTED_NEXUS_DOCKER_REPO=${GLOBAL_INJECTED_NEXUS_DOCKER_REPO}
58     Set To Dictionary    ${values}   GLOBAL_INJECTED_OPENSTACK_TENANT_ID=${GLOBAL_INJECTED_OPENSTACK_TENANT_ID}
59     Set To Dictionary    ${values}   GLOBAL_INJECTED_REGION=${GLOBAL_INJECTED_REGION}
60     Set To Dictionary    ${values}   GLOBAL_INJECTED_KEYSTONE=${GLOBAL_INJECTED_KEYSTONE}
61     Set To Dictionary    ${values}   GLOBAL_INJECTED_VM_FLAVOR=${GLOBAL_INJECTED_VM_FLAVOR}
62     Set To Dictionary    ${values}   GLOBAL_INJECTED_VM_IMAGE_NAME=${GLOBAL_INJECTED_VM_IMAGE_NAME}
63     Set To Dictionary    ${values}   GLOBAL_INJECTED_PUBLIC_NET_ID=${GLOBAL_INJECTED_PUBLIC_NET_ID}
64     Set To Dictionary    ${values}   prefix=${HOSTS_PREFIX}
65     Create File From Template   ${URLS_HTML_TEMPLATE}   ${URLS_HTML}   ${values}
66
67 *** Keywords ***
68 Create File From Template
69     [Arguments]    ${template}   ${file}   ${values}
70     Templating.Create Environment    web    ${GLOBAL_TEMPLATE_FOLDER}
71     ${data}=   Templating.Apply Template    web   ${template}    ${values}
72     Create File     ${file}   ${data}
73
74 Set Public Ip
75     [Arguments]   ${server_map}    ${oam_ip}   ${value_name}   ${values}
76     ${status}   ${public_ip}=   Run Keyword And Ignore Error  Get Public Ip   ${server_map}    ${oam_ip}
77     ${public_ip}=   Set Variable If   '${status}' == 'PASS'   ${public_ip}   ${oam_ip}
78     Set To Dictionary   ${values}   ${value_name}   ${public_ip}
79
80 Get Public Ip
81     [Arguments]   ${server_map}    ${oam_ip}
82     ${servers}   Get Dictionary Values    ${server_map}
83     :FOR   ${server}   IN   @{servers}
84     \    ${status}   ${public_ip}   Run Keyword And Ignore Error   Search Addresses   ${server}   ${oam_ip}
85     \    Return From Keyword If   '${status}'=='PASS'   ${public_ip}
86     Fail  ${oam_ip} Server Not Found
87
88 Search Addresses
89     [Arguments]   ${server}   ${oam_ip}
90     ${addresses}   Get From Dictionary   ${server}   addresses
91     ${status}   ${public_ip}=   Run Keyword And Ignore Error   Find Rackspace   ${addresses}   ${oam_ip}
92     Return From Keyword If   '${status}'=='PASS'   ${public_ip}
93     ${status}   ${public_ip}=   Run Keyword And Ignore Error   Find Openstack   ${addresses}   ${oam_ip}
94     Return From Keyword If   '${status}'=='PASS'   ${public_ip}
95     ${status}   ${public_ip}=   Run Keyword And Ignore Error   Find Openstack 2   ${addresses}   ${oam_ip}
96     Return From Keyword If   '${status}'=='PASS'   ${public_ip}
97     Fail  ${oam_ip} Server Not Found
98
99 Find Rackspace
100     [Arguments]   ${addresses}   ${oam_ip}
101     ${public_ips}   Get From Dictionary   ${addresses}   public
102     ${public_ip}=   Get V4 IP   ${public_ips}
103     ${oam_ips}   Get From Dictionary   ${addresses}   ${GLOBAL_INJECTED_NETWORK}
104     ${this_oam_ip}=   Get V4 IP   ${oam_ips}
105     Return From Keyword If   '${this_oam_ip}' == '${oam_ip}'   ${public_ip}
106     Fail  ${oam_ip} Server Not Found
107
108 Find Openstack
109     [Arguments]   ${addresses}   ${oam_ip}
110     ${public_ip}=   Get V4 IP Openstack   ${addresses}   external
111     ${this_oam_ip}=    Get V4 IP Openstack   ${addresses}   ${GLOBAL_INJECTED_NETWORK}
112     Return From Keyword If   '${this_oam_ip}'=='${oam_ip}'   ${public_ip}
113     Fail  ${oam_ip} Server Not Found
114
115 Find Openstack 2
116     [Arguments]   ${addresses}   ${oam_ip}
117     ${ipmaps}=   Get From DIctionary   ${addresses}   ${GLOBAL_INJECTED_NETWORK}
118     ${public_ip}=   Get V4 IP Openstack 2  ${ipmaps}   floating
119     ${this_oam_ip}=    Get V4 IP Openstack 2   ${ipmaps}   fixed
120     Return From Keyword If   '${this_oam_ip}'=='${oam_ip}'   ${public_ip}
121     Fail  ${oam_ip} Server Not Found
122
123 Get V4 IP
124     [Arguments]   ${ipmaps}
125     :FOR   ${ipmap}   IN   @{ipmaps}
126     \    ${ip}   Get From Dictionary   ${ipmap}   addr
127     \    ${version}   Get From Dictionary   ${ipmap}   version
128     \    Return from Keyword if   '${version}' == '4'   ${ip}
129     Fail  No Version 4 IP
130
131 Get V4 IP Openstack
132     [Arguments]   ${addresses}   ${testtype}
133     ${ipmaps}=   Get From Dictionary   ${addresses}   ${testtype}
134     :FOR   ${ipmap}   IN   @{ipmaps}
135     \    ${ip}   Get From Dictionary   ${ipmap}   addr
136     \    ${version}   Get From Dictionary   ${ipmap}   version
137     \    Return from Keyword if   '${version}'=='4'   ${ip}
138     Fail  No Version 4 IP
139
140 Get V4 IP Openstack 2
141     [Arguments]   ${ipmaps}   ${testtype}
142     :FOR   ${ipmap}   IN   @{ipmaps}
143     \    ${type}   Get From Dictionary   ${ipmap}   OS-EXT-IPS:type
144     \    ${ip}   Get From Dictionary   ${ipmap}   addr
145     \    ${version}   Get From Dictionary   ${ipmap}   version
146     \    Return from Keyword if   '${version}'=='4' and '${type}'=='${testtype}'   ${ip}
147     Fail  No Version 4 IP