Merge "Add New Attrs According the Code Changes"
diff --git a/bootstrap/vagrant-onap/lib/aai b/bootstrap/vagrant-onap/lib/aai
index bd72ae0..4da5763 100755
--- a/bootstrap/vagrant-onap/lib/aai
+++ b/bootstrap/vagrant-onap/lib/aai
@@ -6,7 +6,10 @@
 
 hbase_version=1.2.3
 aai_src_folder=$git_src_folder/aai
-aai_repos=("aai-common" "aai-config" "aai-data" "aai-service" "data-router" "logging-service" "model-loader" "resources" "rest-client" "router-core" "search-data-service" "test-config" "traversal" "sparky-fe" "sparky-be")
+aai_repos=("aai-common" "aai-config" "aai-data" "aai-service" "babel" "champ" \
+"data-router" "esr-gui" "esr-server" "gizmo" "logging-service" "model-loader" \
+"resources" "rest-client" "router-core" "search-data-service" "test-config" \
+"traversal" "sparky-fe" "sparky-be")
 
 # install_hadoop() - Function that installs Hadoop
 function install_hadoop {
diff --git a/bootstrap/vagrant-onap/tests/test_aai b/bootstrap/vagrant-onap/tests/test_aai
index 5ff62c1..79d26c8 100644
--- a/bootstrap/vagrant-onap/tests/test_aai
+++ b/bootstrap/vagrant-onap/tests/test_aai
@@ -39,7 +39,12 @@
     asserts_file_exist $aai_src_folder/aai-config/cookbooks/aai-resources/runlist-aai-resources.json
     asserts_file_exist $aai_src_folder/aai-data/environments/solo.json
     asserts_file_exist $aai_src_folder/aai-service/pom.xml
+    asserts_file_exist $aai_src_folder/babel/README.md
+    asserts_file_exist $aai_src_folder/champ/pom.xml
     asserts_file_exist $aai_src_folder/data-router/pom.xml
+    asserts_file_exist $aai_src_folder/esr-gui/pom.xml
+    asserts_file_exist $aai_src_folder/esr-server/pom.xml
+    asserts_file_exist $aai_src_folder/gizmo/pom.xml
     asserts_file_exist $aai_src_folder/logging-service/pom.xml
     asserts_file_exist $aai_src_folder/model-loader/pom.xml
     asserts_file_exist $aai_src_folder/resources/pom.xml
@@ -57,14 +62,13 @@
     clone_all_aai_repos
     compile_aai_repos
 
-    asserts_file_exist $aai_src_folder/aai-common/aai-annotations/target/aai-annotations-1.1.0-SNAPSHOT.jar
-    asserts_file_exist $aai_src_folder/aai-common/aai-auth/target/aai-auth-1.1.0-SNAPSHOT.jar
-    asserts_file_exist $aai_src_folder/aai-common/aai-core/target/aai-core-1.1.0-SNAPSHOT.jar
-    asserts_file_exist $aai_src_folder/aai-common/aai-schema/target/aai-schema-1.1.0-SNAPSHOT.jar
+    for common in annotations auth core schema utils; do
+        asserts_file_exist $aai_src_folder/aai-common/aai-$common/target/aai-$common-1.1.0-SNAPSHOT.jar
+    done
 
-    asserts_file_exist $aai_src_folder/logging-service/common-logging/target/common-logging-1.1.0-SNAPSHOT.jar
-    asserts_file_exist $aai_src_folder/logging-service/eelf-logging/target/eelf-logging-1.1.0-SNAPSHOT.jar
-    asserts_file_exist $aai_src_folder/logging-service/logging-api/target/logging-api-1.1.0-SNAPSHOT.jar
+    for service in common-logging eelf-logging logging-api; do
+        asserts_file_exist $aai_src_folder/logging-service/$service/target/$service-1.1.0-SNAPSHOT.jar
+    done
 
     asserts_file_exist $aai_src_folder/resources/aai-resources/target/aai-resources.jar
     asserts_file_exist $aai_src_folder/traversal/aai-traversal/target/traversal.jar
diff --git a/pom.xml b/pom.xml
deleted file mode 100644
index 3e0aea3..0000000
--- a/pom.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   Copyright (c) 2016-2017 Huawei Technologies Co., Ltd.
-   Modifications copyright (C) 2017 AT&T Intellectual Property
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <groupId>org.onap.oparent</groupId>
-    <artifactId>oparent</artifactId>
-    <version>0.1.1</version>
-  </parent>
-  <name>integration</name>
-  <groupId>org.onap.integration</groupId>
-  <artifactId>root</artifactId>
-  <version>0.1.0-SNAPSHOT</version>
-  <packaging>pom</packaging>
-  <modules>
-    <module>version-manifest</module>
-  </modules>
-</project>
diff --git a/test/csit/plans/portal-sdk/testsuite/.env b/test/csit/plans/portal-sdk/testsuite/.env
index 1e882a0..0b7de95 100644
--- a/test/csit/plans/portal-sdk/testsuite/.env
+++ b/test/csit/plans/portal-sdk/testsuite/.env
@@ -20,3 +20,14 @@
 DOCKER_IMAGE_VERSION=1.3-STAGING-latest
 CLI_DOCKER_VERSION=1.1-STAGING-latest
 NEXUS_DOCKER_REPO=nexus3.onap.org:10003
+
+
+# Optional settings with no defaults.
+EXTRA_HOST_IP=""
+EXTRA_HOST_NAME=""
+# Export shell environment variables on hosts with no DNS;
+# a line is added to docker container's /etc/hosts.
+# For example:
+#EXTRA_HOST_IP="-i ${HOST_IP}"
+#EXTRA_HOST_NAME="-n portal.api.simpledemo.openecomp.org"
+
diff --git a/test/csit/plans/portal-sdk/testsuite/docker-compose.yml b/test/csit/plans/portal-sdk/testsuite/docker-compose.yml
index b92766f..7a9fb8c 100644
--- a/test/csit/plans/portal-sdk/testsuite/docker-compose.yml
+++ b/test/csit/plans/portal-sdk/testsuite/docker-compose.yml
@@ -91,5 +91,8 @@
       - portal-db:3306
       - --
       - /start-apps-cmd.sh
+      # see comments in .env file
+      - $EXTRA_HOST_IP
+      - $EXTRA_HOST_NAME
     logging:
       driver: json-file
diff --git a/test/csit/plans/portal-sdk/testsuite/setup.sh b/test/csit/plans/portal-sdk/testsuite/setup.sh
index 71d1105..2091d14 100644
--- a/test/csit/plans/portal-sdk/testsuite/setup.sh
+++ b/test/csit/plans/portal-sdk/testsuite/setup.sh
@@ -14,6 +14,8 @@
 HOST_IP=$(ip route get 8.8.8.8 | awk '/8.8.8.8/ {print $NF}')
 export HOST_IP=${HOST_IP}
 
+
+
 if ! ifconfig docker0; then
 if ! ifconfig ens3; then
 echo "Could not determine IP address"
@@ -33,6 +35,8 @@
 export DOCKER_IP=${DOCKER_IP}
 
 
+
+
 # be verbose
 set -x
 
@@ -54,16 +58,22 @@
 rm docker-compose.yml
 cp $CURR/.env .
 cp $CURR/docker-compose.yml .
-#cd  properties_rackspace/ECOMPPORTALAPP
+#cd  properties_simpledemo/ECOMPPORTALAPP
 #rm  system.properties
 #cp  $CURR/system.properties .
 #cd ../..
 # Get image names used below from docker-compose environment file
 source $CURR/.env
+#source .env
+
+# Make inter-app communication work in CSIT
+export EXTRA_HOST_IP="-i ${HOST_IP}"
+export EXTRA_HOST_NAME="-n portal.api.simpledemo.openecomp.org"
+
 
 # Copy property files to new directory
 mkdir -p $PROPS_DIR
-cp -r properties_rackspace/* $PROPS_DIR
+cp -r properties_simpledemo/* $PROPS_DIR
 # Also create logs directory
 mkdir -p $LOGS_DIR
 
@@ -118,6 +128,8 @@
 echo "$host_entry" | sudo tee -a /etc/hosts > /dev/null
 fi
 
+
+
 sleep 3m
 
 # WAIT 5 minutes maximum and test every 5 seconds if Portal up using HealthCheck API
@@ -157,7 +169,7 @@
 HOST_IP=$(ip route get 8.8.8.8 | awk '/8.8.8.8/ {print $NF}')
 export HOST_IP=${HOST_IP}
 
-docker logs deliveries_portal-db_1
+#docker logs deliveries_portal-db_1
 docker logs deliveries_portal-apps_1
 docker logs deliveries_portal-wms_1
 
diff --git a/test/csit/plans/portal/testsuite/setup.sh b/test/csit/plans/portal/testsuite/setup.sh
index 2091d14..ff21142 100644
--- a/test/csit/plans/portal/testsuite/setup.sh
+++ b/test/csit/plans/portal/testsuite/setup.sh
@@ -55,9 +55,9 @@
 git pull
 cd deliveries
 rm .env
-rm docker-compose.yml
+#rm docker-compose.yml
 cp $CURR/.env .
-cp $CURR/docker-compose.yml .
+#cp $CURR/docker-compose.yml .
 #cd  properties_simpledemo/ECOMPPORTALAPP
 #rm  system.properties
 #cp  $CURR/system.properties .
diff --git a/test/csit/scripts/sdc/clone_and_setup_sdc_data.sh b/test/csit/scripts/sdc/clone_and_setup_sdc_data.sh
index 97f7673..a889812 100644
--- a/test/csit/scripts/sdc/clone_and_setup_sdc_data.sh
+++ b/test/csit/scripts/sdc/clone_and_setup_sdc_data.sh
@@ -27,6 +27,10 @@
 # Clone sdc enviroment template 
 mkdir -p ${WORKSPACE}/data/environments/
 mkdir -p ${WORKSPACE}/data/clone/
+mkdir -p ${WORKSPACE}/data/logs/BE/SDC/SDC-BE
+mkdir -p ${WORKSPACE}/data/logs/FE/SDC/SDC-FE
+chmod -R 777 ${WORKSPACE}/data/logs
+
 
 cd ${WORKSPACE}/data/clone
 git clone --depth 1 http://gerrit.onap.org/r/sdc -b master
diff --git a/test/csit/scripts/sdc/start_sdc_containers.sh b/test/csit/scripts/sdc/start_sdc_containers.sh
index bccea70..a1ac28b 100644
--- a/test/csit/scripts/sdc/start_sdc_containers.sh
+++ b/test/csit/scripts/sdc/start_sdc_containers.sh
@@ -105,5 +105,5 @@
 
 if [ "$TIME" -ge "$TIME_OUT" ]; then
    echo TIME OUT: Docker containers not started in $TIME_OUT seconds... Could cause problems for tests...
-
+fi
 
diff --git a/test/csit/scripts/sdc/start_sdc_sanity.sh b/test/csit/scripts/sdc/start_sdc_sanity.sh
index 7f2de0e..e9e9214 100644
--- a/test/csit/scripts/sdc/start_sdc_sanity.sh
+++ b/test/csit/scripts/sdc/start_sdc_sanity.sh
@@ -26,7 +26,7 @@
 
 #start Sanity docker
 
-docker run --detach --name sdc-sanity --env HOST_IP=${IP} --env ENVNAME="${DEP_ENV}" --env http_proxy=${http_proxy} --env https_proxy=${https_proxy} --env no_proxy=${no_proxy} --log-driver=json-file --log-opt max-size=100m --log-opt max-file=10 --ulimit memlock=-1:-1 --memory 512m --memory-swap=512m --ulimit nofile=4096:100000 --volume /etc/localtime:/etc/localtime:ro --volume ${WORKSPACE}/data/logs/sdc-sanity/target:/var/lib/tests/target --volume ${WORKSPACE}/data/logs/sdc-sanity/ExtentReport:/var/lib/tests/ExtentReport --volume ${WORKSPACE}/data/environments:/root/chef-solo/environments --publish 9560:9560 ${PREFIX}/sdc-sanity:${RELEASE}
+docker run --detach --name sdc-sanity --env HOST_IP=${IP} --env ENVNAME="${DEP_ENV}" --env http_proxy=${http_proxy} --env https_proxy=${https_proxy} --env no_proxy=${no_proxy} --log-driver=json-file --log-opt max-size=100m --log-opt max-file=10 --ulimit memlock=-1:-1 --memory 1g --memory-swap=1g --ulimit nofile=4096:100000 --volume /etc/localtime:/etc/localtime:ro --volume ${WORKSPACE}/data/logs/sdc-sanity/target:/var/lib/tests/target --volume ${WORKSPACE}/data/logs/sdc-sanity/ExtentReport:/var/lib/tests/ExtentReport --volume ${WORKSPACE}/data/environments:/root/chef-solo/environments --publish 9560:9560 ${PREFIX}/sdc-sanity:${RELEASE}
 
 #echo "please wait while Sanity Docker is starting..."
 echo ""
@@ -66,3 +66,5 @@
    echo TIME OUT: Sany was NOT completed in $TIME_OUT seconds... Could cause problems for tests...
 fi
 cp -rf ${WORKSPACE}/data/logs/sdc-sanity/ExtentReport/* ${WORKSPACE}/archives/ 
+cp -rf ${WORKSPACE}/data/logs/ ${WORKSPACE}/archives/ 
+
diff --git a/test/csit/tests/portal/testsuites/test1.robot b/test/csit/tests/portal/testsuites/test1.robot
index 391866b..42f88bf 100644
--- a/test/csit/tests/portal/testsuites/test1.robot
+++ b/test/csit/tests/portal/testsuites/test1.robot
@@ -14,7 +14,6 @@
 
 
 *** Variables ***
-#${PORTAL_URL}      http://%{HOST_IP}:8989
 #${PORTAL_URL}		http://localhost:8989
 ${PORTAL_URL}		http://portal.api.simpledemo.openecomp.org:8989
 ${PORTAL_ENV}            /ECOMPPORTAL
@@ -22,16 +21,16 @@
 ${PORTAL_HOME_PAGE}        ${PORTAL_URL}${PORTAL_ENV}/applicationsHome
 ${PORTAL_MICRO_ENDPOINT}    ${PORTAL_URL}${PORTAL_ENV}/commonWidgets
 ${PORTAL_HOME_URL}                ${PORTAL_URL}${PORTAL_ENV}/applicationsHome
-${App_First_Name}    appdemo    
+${App_First_Name}    demoapp    
 ${App_Last_Name}    demo
-${App_Email_Address}    appdemo@onap.com
-${App_LoginID}     appdemo 
+${App_Email_Address}    demoapp@onap.com
+${App_LoginID}     demoapp 
 ${App_Loginpwd}    demo123456!
 ${App_LoginPwdCheck}    demo123456!
-${Sta_First_Name}    stademo   
+${Sta_First_Name}    demosta   
 ${Sta_Last_Name}    demo
-${Sta_Email_Address}    stademo@onap.com
-${Sta_LoginID}    stademo
+${Sta_Email_Address}    demosta@onap.com
+${Sta_LoginID}    demosta
 ${Sta_Loginpwd}    demo123456!
 ${Sta_LoginPwdCheck}    demo123456!
 ${Test_First_Name}    portal    
@@ -85,47 +84,20 @@
     
 Create Microse service onboarding
     Portal admin Microservice Onboarding
-    
+	
+   
 Create Widget for all users
     Portal Admin Create Widget for All users 
      
 Delete Widget for all users
         Portal Admin Delete Widget for All users    
-    
+		
 Create Widget for Application Roles
-        Portal Admin Create Widget for Application Roles
+    Portal Admin Create Widget for Application Roles
     
 Delete Widget for Application Roles
-        Portal Admin Delete Widget for Application Roles
-    
-#Create a Test user for Application Admin
-#     Portal admin Add Application admin User New user -Test
- 
-#Create a Test user for Standared User    
-#     Portal admin Add Standard User New user
-	 
-#Create a Test User for Apllication Admin
-#		Portal admin Add Application admin User New user
-    
-#Add Application Admin for  Existing User Test user 
-#     Portal admin Add Application Admin Exiting User -APPDEMO
-    
-#Add Application Admin for Exisitng User   
-#     Portal admin Add Application Admin Exiting User 
-            
-#Delete Application Admin for Exisitng User   
-#     Portal admin Delete Application Admin Existing User
-    
-#Add Standard User Role for Existing user 
-#     Portal admin Add Standard User Existing user     
-    
-#Edit Standard User Role for Existing user
-#     Portal admin Edit Standard User Existing user 
-    
- 
-#Delete Standard User Role for Existing user    
-#     Portal admin Delete Standard User Existing user 
-   
+     Portal Admin Delete Widget for Application Roles	
+
 Validate Functional Top Menu Get Access    
      Functional Top Menu Get Access  
     
@@ -143,36 +115,68 @@
    
 Category Notification functionality 
        ${AdminCategoryMsg}=   Portal Admin Category Notifications
-       set global variable    ${AdminCategoryMsg} 
+       set global variable    ${AdminCategoryMsg} 	
+    
+Create a Test user for Application Admin -Test
+     Portal admin Add Application admin User New user -Test
+	 
+Create a Test User for Apllication Admin
+		Portal admin Add Application admin User New user	 
+	 
+Add Application Admin for Existing User Test user 
+     Portal admin Add Application Admin Exiting User -APPDEMO	 
+ 
+Create a Test user for Standared User    
+     Portal admin Add Standard User New user
+    
+Add Application Admin for Exisitng User   
+     Portal admin Add Application Admin Exiting User 
+            
+Delete Application Admin for Exisitng User   
+     Portal admin Delete Application Admin Existing User
+    
+Add Standard User Role for Existing user 
+     Portal admin Add Standard User Existing user     
+    
+Edit Standard User Role for Existing user
+     Portal admin Edit Standard User Existing user 
+    
+ 
+Delete Standard User Role for Existing user    
+     Portal admin Delete Standard User Existing user 
+   
+
           
     
 Logout from Portal GUI as Portal Admin
      Portal admin Logout from Portal GUI
     
-#Login To Portal GUI as APP Admin    
-#     Application admin Login To Portal GUI
+Login To Portal GUI as APP Admin    
+     Application admin Login To Portal GUI
     
-#Navigate Application Link as APP Admin  
-#     Application Admin Navigation Application Link Tab 
+
     
 ##Navigate Functional Link as APP Admin  
 ##      Application Admin Navigation Functional Menu   
     
-#Add Standard User Role for Existing user as APP Admin
-#     Application admin Add Standard User Existing user    
+Add Standard User Role for Existing user as APP Admin
+     Application admin Add Standard User Existing user    
     
-#Edit Standard User Role for Existing user as APP Admin
-#     Application admin Edit Standard User Existing user 
+Edit Standard User Role for Existing user as APP Admin
+     Application admin Edit Standard User Existing user 
     
-#Delete Standard User Role for Existing user as APP Admin   
-#     Application admin Delete Standard User Existing user 
+Delete Standard User Role for Existing user as APP Admin   
+     Application admin Delete Standard User Existing user 
+	 
+#Navigate Application Link as APP Admin  
+#     Application Admin Navigation Application Link Tab 	 
 
-#Logout from Portal GUI as APP Admin   
-#    Application admin Logout from Portal GUI
+Logout from Portal GUI as APP Admin   
+    Application admin Logout from Portal GUI
    
    
-#Login To Portal GUI as Standared User    
-#     Standared user Login To Portal GUI   
+Login To Portal GUI as Standared User    
+     Standared user Login To Portal GUI   
 
 #Navigate Application Link as Standared User  
 #     Standared user Navigation Application Link Tab 
@@ -180,11 +184,11 @@
 ##Navigate Functional Link as Standared User  
 ##      Standared user Navigation Functional Menu     
      
-#Broadcast Notifications Standared user
-#         Standared user Broadcast Notifications    ${AdminBroadCastMsg} 
+Broadcast Notifications Standared user
+         Standared user Broadcast Notifications    ${AdminBroadCastMsg} 
       
-#Category Notifications Standared user
-#        Standared user Category Notifications    ${AdminCategoryMsg}      
+Category Notifications Standared user
+        Standared user Category Notifications    ${AdminCategoryMsg}      
       
 
 Teardown  
@@ -291,8 +295,7 @@
     Click Element    xpath=//span[@id='result-uuid-0']
     Click Button    xpath=//button[@id='search-users-button-next']
     Click Button    xpath=//input[@value='Select application']
-    Scroll Element Into View    xpath=(//input[@value='Select application']/following::*[contains(text(),'xDemo App' )])[1]
-    
+    Scroll Element Into View    xpath=(//input[@value='Select application']/following::*[contains(text(),'xDemo App' )])[1]    
     Click Element    xpath=(//li[contains(.,'xDemo App' )])[2]
     #Select From List    xpath=(//input[@value='Select application']/following::*[contains(text(),'xDemo App')])[1]   xDemo App
     Click Button    xpath=//button[@id='div-updateAdminAppsRoles']
@@ -303,7 +306,8 @@
     Click Element    xpath=//input[@id='dropdown1']
     Click Element    xpath=//li[contains(.,'xDemo App' )]
     Input Text    xpath=//input[@id='input-table-search']    ${Existing_User}
-    Element Text Should Be      xpath=(//span[contains(.,'portal')])[1]   ${Existing_User}
+	Table Column Should Contain    xpath=//*[@table-data='admins.adminsTableData']    1    ${Existing_User}
+    #Element Text Should Be      xpath=(//span[contains(.,'portal')])[1]   ${Existing_User}
 	#Element Text Should Be      xpath=(//span[contains(.,'demo')])[1]   ${Existing_User}
     
     
@@ -319,6 +323,8 @@
     #Is Element Visible    xpath=(//*[contains(.,'Portal')] )[2]
     Element Should Not Contain     xpath=//*[@table-data='admins.adminsTableData']    portal
 	#Element Should Not Contain     xpath=//*[@table-data='admins.adminsTableData']    demo
+	Click Image     xpath=//img[@alt='Onap Logo']
+    Set Selenium Implicit Wait    3000
     
     
 Portal admin Add Application admin User New user
@@ -326,7 +332,7 @@
     Click Link    xpath=//a[@title='Users']
     Page Should Contain      Users
 	Click Button	xpath=//button[@ng-click='toggleSidebar()']
-    Click Button    xpath=//button[@ng-click='users.openAddNewUserModal()']
+    Click Button    xpath=//button[@id='users-button-add']
     Click Button    xpath=//button[@id='Create-New-User-button']
     Input Text    xpath=//input[@ng-model='searchUsers.newUser.firstName']    ${App_First_Name}
     Input Text    xpath=//input[@ng-model='searchUsers.newUser.lastName']    ${App_Last_Name}
@@ -348,7 +354,9 @@
      Click Element    xpath=//li[contains(.,'xDemo App')]
 	Table Column Should Contain    xpath=//*[@table-data='users.accountUsers']    1    ${App_First_Name} 
     #Input Text    xpath=//input[@id='input-table-search']    ${App_First_Name}
-    #Element Text Should Be      xpath=(//span[contains(.,'appdemo')] )[1]   ${App_First_Name}
+    #Element Text Should Be      xpath=(//span[contains(.,'demoapp')] )[1]   ${App_First_Name}
+	 Click Image     xpath=//img[@alt='Onap Logo']
+    Set Selenium Implicit Wait    3000
     
     
 Portal admin Add Standard User New user
@@ -356,7 +364,7 @@
     Click Link    xpath=//a[@title='Users']
     Page Should Contain      Users
 	Click Button	xpath=//button[@ng-click='toggleSidebar()']
-    Click Button    xpath=//button[@ng-click='users.openAddNewUserModal()']
+    Click Button    xpath=//button[@id='users-button-add']
     Click Button    xpath=//button[@id='Create-New-User-button']
     Input Text    xpath=//input[@ng-model='searchUsers.newUser.firstName']    ${Sta_First_Name}
     Input Text    xpath=//input[@ng-model='searchUsers.newUser.lastName']    ${Sta_Last_Name}
@@ -378,7 +386,9 @@
      Click Element    xpath=//li[contains(.,'xDemo App')]
 	 Table Column Should Contain    xpath=//*[@table-data='users.accountUsers']    1    ${Sta_First_Name}
     #Input Text    xpath=//input[@id='input-table-search']    ${Sta_First_Name}
-    #Element Text Should Be      xpath=(//span[contains(.,'appdemo')] )[1]   ${Sta_First_Name} 
+    #Element Text Should Be      xpath=(//span[contains(.,'appdemo')] )[1]   ${Sta_First_Name}
+	 Click Image     xpath=//img[@alt='Onap Logo']
+    Set Selenium Implicit Wait    3000
     
     
     
@@ -387,8 +397,7 @@
     Click Link    xpath=//a[@title='Users']
     Page Should Contain      Users
 	Click Button	xpath=//button[@ng-click='toggleSidebar()']
-	Set Selenium Implicit Wait    3000
-    Click Button    xpath=//button[@ng-click='users.openAddNewUserModal()']
+	Click Button    xpath=//button[@id='users-button-add']
     Click Button    xpath=//button[@id='Create-New-User-button']
     Input Text    xpath=//input[@ng-model='searchUsers.newUser.firstName']    ${Test_First_Name}
     Input Text    xpath=//input[@ng-model='searchUsers.newUser.lastName']    ${Test_Last_Name}
@@ -397,18 +406,23 @@
     Input Text    xpath=//input[@ng-model='searchUsers.newUser.loginPwd']    ${Test_Loginpwd}
     Input Text    xpath=//input[@ng-model='searchUsers.newUser.loginPwdCheck']    ${Test_LoginPwdCheck}
     Click Button    xpath=//button[@ng-click='searchUsers.addNewUserFun()']
-    Click Button    xpath=//button[@id='next-button']
+	Click Button	xpath=//button[@id='search-users-button-cancel']
+	Click Image     xpath=//img[@alt='Onap Logo']
+    Set Selenium Implicit Wait    3000
+	
+	
+    #Click Button    xpath=//button[@id='next-button']
     #Scroll Element Into View    xpath=//div[@id='div-app-name-dropdown-xDemo-App']
-    Click Element    xpath=//*[@id='div-app-name-dropdown-xDemo-App']
-    Click Element    xpath=//*[@id='div-app-name-xDemo-App']/following::input[@id='Standard-User-checkbox']
-    Set Selenium Implicit Wait    3000
-    Click Button    xpath=//button[@id='new-user-save-button']
-    Set Selenium Implicit Wait    3000
-    Go To    ${PORTAL_HOME_PAGE}
-     Click Link    xpath=//a[@title='Users']
-     Click Element    xpath=//input[@id='dropdown1']
-     Click Element    xpath=//li[contains(.,'xDemo App')]
-	 Table Column Should Contain    xpath=//*[@table-data='users.accountUsers']    1    ${Test_First_Name}
+    #Click Element    xpath=//*[@id='div-app-name-dropdown-xDemo-App']
+    #Click Element    xpath=//*[@id='div-app-name-xDemo-App']/following::input[@id='Standard-User-checkbox']
+    #Set Selenium Implicit Wait    3000
+    #Click Button    xpath=//button[@id='new-user-save-button']
+    #Set Selenium Implicit Wait    3000
+    #Go To    ${PORTAL_HOME_PAGE}
+     #Click Link    xpath=//a[@title='Users']
+     #Click Element    xpath=//input[@id='dropdown1']
+     #Click Element    xpath=//li[contains(.,'xDemo App')]
+	 #Table Column Should Contain    xpath=//*[@table-data='users.accountUsers']    1    ${Test_First_Name}
     #Input Text    xpath=//input[@id='input-table-search']    ${Test_First_Name}
     #Element Text Should Be      xpath=(//span[contains(.,'appdemo')] )[1]   ${Test_First_Name} 
     
@@ -428,7 +442,6 @@
     Click Button    xpath=//button[@id='search-users-button-next']
     Click Button    xpath=//input[@value='Select application']
     Scroll Element Into View    xpath=(//input[@value='Select application']/following::*[contains(text(),'xDemo App' )])[1]
-    
     Click Element    xpath=(//li[contains(.,'xDemo App' )])[2]
     #Select From List    xpath=(//input[@value='Select application']/following::*[contains(text(),'xDemo App')])[1]   xDemo App
     Click Button    xpath=//button[@id='div-updateAdminAppsRoles']
@@ -437,10 +450,12 @@
     Get Selenium Implicit Wait
     Click Link    xpath=//a[@aria-label='Admins']
     Click Element    xpath=//input[@id='dropdown1']
-    Click Element    xpath=//li[contains(.,'xDemo App' )]
-	
+    Click Element    xpath=//li[contains(.,'xDemo App' )]	
     Input Text    xpath=//input[@id='input-table-search']    ${App_First_Name}
-    Element Text Should Be      xpath=(//span[contains(.,'appdemo')])[1]   ${App_First_Name}   
+    #Element Text Should Be      xpath=(//span[contains(.,'appdemo')])[1]   ${App_First_Name}
+	Table Column Should Contain    xpath=//*[@table-data='admins.adminsTableData']    1    ${App_First_Name}
+	Click Image     xpath=//img[@alt='Onap Logo']
+    Set Selenium Implicit Wait    3000	
     
     
     
@@ -462,7 +477,6 @@
      Click Element    xpath=//*[@id='div-app-name-xDemo-App']/following::input[@id='Standard-User-checkbox']
      #Click Element    xpath=//div[@id='div-app-name-dropdown-xDemo-App']
      #Click Element    xpath=//div[@id='div-app-name-xDemo-App']/following::input[@id='Standard-User-checkbox']
-     
      Set Selenium Implicit Wait    3000
      Click Button    xpath=//button[@id='new-user-save-button']
      Set Selenium Implicit Wait    3000
@@ -471,7 +485,6 @@
      #Click Link    xpath=//a[@title='Users']
      #Page Should Contain      Users
      #Focus    xpath=//input[@name='dropdown1']
-    
      Go To    ${PORTAL_HOME_PAGE}
      Click Link    xpath=//a[@title='Users']
      Click Element    xpath=//input[@id='dropdown1']
@@ -479,6 +492,7 @@
      #Click Element    xpath=//li[contains(.,'XDemo App')]
      Input Text    xpath=//input[@id='input-table-search']    ${Existing_User}
      Element Text Should Be      xpath=(.//*[@id='rowheader_t1_0'])[2]   Standard User
+	 
      
      
 Portal admin Edit Standard User Existing user  
@@ -794,8 +808,10 @@
     Click Link    xpath=//a[@id='parent-item-Home']
     Click Element    xpath=.//h3[contains(text(),'xDemo App')]/following::div[1]
     Page Should Contain    ONAP Portal
-    Click Element    xpath=//i[@class='ion-close-round']    
-    Click Element    xpath=(.//span[@id='tab-Home'])[1]
+	Scroll Element Into View	xpath=//i[@class='ion-close-round']
+    Click Element    xpath=//i[@class='ion-close-round']
+    Set Selenium Implicit Wait    3000   
+    #Click Element    xpath=(.//span[@id='tab-Home'])[1]
     
     
 Application Admin Navigation Functional Menu     
@@ -862,6 +878,8 @@
      #Input Text    xpath=//input[@id='input-table-search']    ${Existing_User}
      #Is Element Visible    xpath=(//*[contains(.,'Portal')] )[2] 
      Element Should Not Contain     xpath=//*[@table-data='users.accountUsers']    Portal   
+	 Click Image     xpath=//img[@alt='Onap Logo']
+    Set Selenium Implicit Wait    3000
      
      
      
diff --git a/test/csit/tests/vfc/nfvo-driver-ems/test.robot b/test/csit/tests/vfc/nfvo-driver-ems/test.robot
index ebbcf8a..e1a5776 100755
--- a/test/csit/tests/vfc/nfvo-driver-ems/test.robot
+++ b/test/csit/tests/vfc/nfvo-driver-ems/test.robot
@@ -6,16 +6,19 @@
 
 *** Variables ***
 @{return_ok_list}=   200  201  202
-${queryswagger_url}    /api/emsdriver/v1/swagger
+${queryswagger_url}    /api/emsdriver/v1/swagger.json
 
 *** Test Cases ***
 EMSDriverSwaggerTest
     [Documentation]    query swagger info of emsdriver
     ${headers}    Create Dictionary    Content-Type=application/json    Accept=application/json
-    Create Session    web_session    http://${MSB_IAG_IP}:80    headers=${headers}
+    Create Session    web_session    http://${EMS_DRV_IP}:8206    headers=${headers}
     ${resp}=  Get Request    web_session    ${queryswagger_url}
     ${responese_code}=     Convert To String      ${resp.status_code}
-    Should Be Equal    2.0    2.0
+    List Should Contain Value    ${return_ok_list}   ${responese_code}
+    ${response_json}    json.loads    ${resp.content}
+    ${swagger_version}=    Convert To String      ${response_json['swagger']}
+    Should Be Equal    ${swagger_version}    2.0
 
 EMSDriverSwaggerByMSBTest
     [Documentation]    query swagger info of emsdriver by MSB
diff --git a/test/ete/labs/windriver/Integration-Stable-openrc.sh b/test/ete/labs/windriver/Integration-Stable-openrc.sh
new file mode 100644
index 0000000..1d68adc
--- /dev/null
+++ b/test/ete/labs/windriver/Integration-Stable-openrc.sh
@@ -0,0 +1,52 @@
+#!/usr/bin/env bash
+
+# To use an OpenStack cloud you need to authenticate against the Identity
+# service named keystone, which returns a **Token** and **Service Catalog**.
+# The catalog contains the endpoints for all services the user/tenant has
+# access to - such as Compute, Image Service, Identity, Object Storage, Block
+# Storage, and Networking (code-named nova, glance, keystone, swift,
+# cinder, and neutron).
+#
+# *NOTE*: Using the 3 *Identity API* does not necessarily mean any other
+# OpenStack API is version 3. For example, your cloud provider may implement
+# Image API v1.1, Block Storage API v2, and Compute API v2.0. OS_AUTH_URL is
+# only for the Identity API served through keystone.
+export OS_AUTH_URL=http://10.12.25.2:5000/v3
+
+# With the addition of Keystone we have standardized on the term **project**
+# as the entity that owns the resources.
+export OS_PROJECT_ID=3583253e932845a09cd4c8ca2f31d095
+export OS_PROJECT_NAME="Integration-Stable"
+export OS_USER_DOMAIN_NAME="Default"
+if [ -z "$OS_USER_DOMAIN_NAME" ]; then unset OS_USER_DOMAIN_NAME; fi
+
+# unset v2.0 items in case set
+unset OS_TENANT_ID
+unset OS_TENANT_NAME
+
+# In addition to the owning entity (tenant), OpenStack stores the entity
+# performing the action as the **user**.
+export OS_USERNAME="gary_wu"
+
+# Remote Openstack clients will need to set this environment if
+# connecting to an HTTPS enabled endpoint
+CERT_MSG="Please enter a path for your CA certificate pem file, \
+or press enter if you are not using HTTPS "
+read -p "$CERT_MSG" OS_CACERT_INPUT
+if [ ! -z "$OS_CACERT_INPUT" ]
+then
+    export OS_CACERT=$(readlink -f $OS_CACERT_INPUT)
+fi
+
+# With Keystone you pass the keystone password.
+read -sp "Please enter your OpenStack Password for project $OS_PROJECT_NAME as user $OS_USERNAME: " OS_PASSWORD_INPUT
+export OS_PASSWORD=$OS_PASSWORD_INPUT
+
+# If your configuration has multiple regions, we set that information here.
+# OS_REGION_NAME is optional and only valid in certain environments.
+export OS_REGION_NAME="RegionOne"
+# Don't leave a blank variable, unset it if it was empty
+if [ -z "$OS_REGION_NAME" ]; then unset OS_REGION_NAME; fi
+
+export OS_INTERFACE=public
+export OS_IDENTITY_API_VERSION=3
diff --git a/test/ete/labs/windriver/onap.env b/test/ete/labs/windriver/onap.env
new file mode 100644
index 0000000..5eb5d36
--- /dev/null
+++ b/test/ete/labs/windriver/onap.env
@@ -0,0 +1,185 @@
+parameters:
+
+  ##############################################
+  #                                            #
+  # Parameters used across all ONAP components #
+  #                                            #
+  ##############################################
+
+  public_net_id: 971040b2-7059-49dc-b220-4fab50cb2ad4
+
+  ubuntu_1404_image: ubuntu-14-04-cloud-amd64
+
+  ubuntu_1604_image: ubuntu-16-04-cloud-amd64
+
+  centos_7_image: CentOS-7
+
+  flavor_small: m1.small
+
+  flavor_medium: m1.medium
+
+  flavor_large: m1.large
+
+  flavor_xlarge: m1.xlarge
+
+  flavor_xxlarge: m1.xxlarge
+
+  security_group: default
+
+  vm_base_name: onap
+
+  key_name: onap_key
+
+  dcae_key_name: dcae_key
+
+  pub_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDKXDgoo3+WOqcUG8/5uUbk81+yczgwC4Y8ywTmuQqbNxlY1oQ0YxdMUqUnhitSXs5S/yRuAVOYHwGg2mCs20oAINrP+mxBI544AMIb9itPjCtgqtE2EWo6MmnFGbHB4Sx3XioE7F4VPsh7japsIwzOjbrQe+Mua1TGQ5d4nfEOQaaglXLLPFfuc7WbhbJbK6Q7rHqZfRcOwAMXgDoBqlyqKeiKwnumddo2RyNT8ljYmvB6buz7KnMinzo7qB0uktVT05FH9Rg0CTWH5norlG5qXgP2aukL0gk1ph8iAt7uYLf1ktp+LJI2gaF6L0/qli9EmVCSLr1uJ38Q8CBflhkh
+
+  dcae_pub_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC94pcIva90rzXumORjMCf16qjVrn5+ykfW6uMcn+DPlifU+ihtqx4Up26v1gVZyCuY8BFmbhm4YGxnRykNfi71kYbWOasUFzY86dtptCuLVMRLsMYWwOA3sHQ5IcUYNbWmChh4LyOIfhy4p2atCmB1UUkQf7Icg8LokCIcdI3IohlNko50t9KOIhBvqC7Bnegnl6zpoYdtYQppdgp5xesdhYRrdIGmT86cH2QbImpcR3tMTty7SLsw5WdTSfUFwfm76s07ivUDfCRMCJoWcxQeh6my7P7BkfDYMVIYRyfWmoIf2iv3UrqahHTcCiL79SRiD0iCt0K2SEgGsVyCX2jf
+
+  nexus_repo: https://nexus.onap.org/content/sites/raw
+
+  nexus_docker_repo: nexus3.onap.org:10001
+
+  nexus_username: docker
+
+  nexus_password: docker
+
+  dmaap_topic: AUTO
+
+  artifacts_version: 1.1.0-SNAPSHOT
+
+  openstack_tenant_id: SAMPLE
+
+  openstack_username: SAMPLE
+
+  openstack_api_key: SAMPLE
+
+  openstack_auth_method: password
+
+  openstack_region: RegionOne
+
+  horizon_url: http://10.12.25.2/horizon
+
+  keystone_url: http://10.12.25.2:5000
+
+  cloud_env: openstack
+
+
+  ######################
+  #                    #
+  # Network parameters #
+  #                    #
+  ######################
+
+  dns_list: 8.8.8.8
+  external_dns: 8.8.8.8
+  oam_network_cidr: 10.0.0.0/16
+
+  ### Private IP addresses ###
+
+  aai1_ip_addr: 10.0.1.1
+  aai2_ip_addr: 10.0.1.2
+  appc_ip_addr: 10.0.2.1
+  dcae_ip_addr: 10.0.4.1
+  dcae_coll_ip_addr: 10.0.4.102
+  dcae_db_ip_addr: 10.0.4.101
+  dcae_hdp1_ip_addr: 10.0.4.103
+  dcae_hdp2_ip_addr: 10.0.4.104
+  dcae_hdp3_ip_addr: 10.0.4.105
+  dns_ip_addr: 10.0.100.1
+  so_ip_addr: 10.0.5.1
+  mr_ip_addr: 10.0.11.1
+  policy_ip_addr: 10.0.6.1
+  portal_ip_addr: 10.0.9.1
+  robot_ip_addr: 10.0.10.1
+  sdc_ip_addr: 10.0.3.1
+  sdnc_ip_addr: 10.0.7.1
+  vid_ip_addr: 10.0.8.1
+  clamp_ip_addr: 10.0.12.1
+  openo_ip_addr: 10.0.14.1
+
+  dcae_coll_float_ip: 10.12.0.32
+  dcae_db_float_ip: 10.12.0.24
+  dcae_hdp1_float_ip: 10.12.0.30
+  dcae_hdp2_float_ip: 10.12.0.33
+  dcae_hdp3_float_ip: 10.12.0.15
+
+  ###########################
+  #                         #
+  # Parameters used by DCAE #
+  #                         #
+  ###########################
+
+  dcae_base_environment: 1-NIC-FLOATING-IPS
+
+  dcae_zone: ZONE
+
+  dcae_state: STATE
+
+  nexus_repo_root: https://nexus.onap.org
+
+  nexus_url_snapshot: https://nexus.onap.org/content/repositories/snapshots
+
+  gitlab_branch: master
+
+  dcae_code_version: 1.1.0
+
+
+  ################################
+  #                              #
+  # Docker versions and branches #
+  #                              #
+  ################################
+
+  aai_branch: master
+  appc_branch: master
+  so_branch: master
+  mr_branch: master
+  dcae_branch: master
+  policy_branch: master
+  portal_branch: master
+  robot_branch: master
+  sdc_branch: master
+  sdnc_branch: master
+  vid_branch: master
+  clamp_branch: master
+  vnfsdk_branch: master
+
+  aai_docker: 1.1-STAGING-latest
+  appc_docker: 1.1-STAGING-latest
+  so_docker: 1.1-STAGING-latest
+  mr_docker: 1.1-STAGING-latest
+  dcae_docker: 1.1-latest
+  policy_docker: 1.1-STAGING-latest
+  portal_docker: 1.3-STAGING-latest
+  robot_docker: 1.1-STAGING-latest
+  sdc_docker: 1.1-STAGING-latest
+  sdnc_docker: 1.2-STAGING-latest
+  vid_docker: 1.1-STAGING-latest
+  clamp_docker: 1.1-STAGING-latest
+  msb_docker: latest
+  mvim_docker: latest
+  vfc_docker: latest
+  uui_docker: latest
+  esr_docker: latest
+  dgbuilder_docker: 0.1-STAGING-latest
+  cli_docker: 1.1-STAGING-latest
+
+  #####################
+  #                   #
+  # ONAP repositories #
+  #                   #
+  #####################
+  aai_repo: http://gerrit.onap.org/r/aai/test-config
+  appc_repo: http://gerrit.onap.org/r/appc/deployment.git
+  dcae_repo: http://gerrit.onap.org/r/dcae/demo/startup/controller.git
+  mr_repo: http://gerrit.onap.org/r/dcae/demo/startup/message-router.git 
+  so_repo: http://gerrit.onap.org/r/so/docker-config.git
+  policy_repo: http://gerrit.onap.org/r/policy/docker.git
+  portal_repo: http://gerrit.onap.org/r/portal.git
+  robot_repo: http://gerrit.onap.org/r/testsuite/properties.git
+  sdc_repo: http://gerrit.onap.org/r/sdc.git
+  sdnc_repo: http://gerrit.onap.org/r/sdnc/oam.git
+  vid_repo: http://gerrit.onap.org/r/vid.git
+  clamp_repo: http://gerrit.onap.org/r/clamp.git
+  vnfsdk_repo: http://gerrit.onap.org/r/vnfsdk/refrepo.git
diff --git a/test/ete/scripts/deploy-onap.sh b/test/ete/scripts/deploy-onap.sh
new file mode 100755
index 0000000..3c69e15
--- /dev/null
+++ b/test/ete/scripts/deploy-onap.sh
@@ -0,0 +1,53 @@
+#!/bin/bash
+
+if [ -z "$OS_AUTH_URL" ] || [ -z "$OS_USERNAME" ]
+then
+    echo "ERROR: OpenStack environment variables not set.  Please source your OpenStack RC script first."
+    exit 1
+fi
+
+
+if [ -z "$WORKSPACE" ]; then
+    export WORKSPACE=`git rev-parse --show-toplevel`
+fi
+
+
+
+# Assume that if ROBOT_VENV is set, we don't need to reinstall robot
+if [ -f ${WORKSPACE}/env.properties ]; then
+    source ${WORKSPACE}/env.properties
+fi
+
+if [ ! -z "$ONAP_VENV" ] && [ -f "$ONAP_VENV/bin/activate" ]; then
+    source ${ONAP_VENV}/bin/activate
+else
+    ONAP_VENV=$(mktemp -d --suffix=_onap_venv)
+    virtualenv ${ONAP_VENV}
+    source ${ONAP_VENV}/bin/activate
+    
+    pip install --upgrade pip
+    pip install --upgrade python-openstackclient python-heatclient
+    
+    echo "ONAP_VENV=${ONAP_VENV}" >> $WORKSPACE/env.properties
+fi
+echo "ONAP_VENV=${ONAP_VENV}"
+
+if [ -z "$ONAP_WORKDIR" ]; then
+    ONAP_WORKDIR=$(mktemp -d --suffix=_onap_workdir)
+    echo "ONAP_WORKDIR=${ONAP_WORKDIR}" >> $WORKSPACE/env.properties
+fi
+echo "ONAP_WORKDIR=${ONAP_WORKDIR}"
+if [ ! -d ${ONAP_WORKDIR}/demo ]; then
+    git clone http://gerrit.onap.org/r/demo ${ONAP_WORKDIR}/demo
+else
+    pushd ${ONAP_WORKDIR}/demo
+    git pull
+    popd
+fi
+
+
+
+STACK="ete-$(uuidgen | cut -c-8)"
+echo "Stack Name: ${STACK}"
+openstack stack create -t ${ONAP_WORKDIR}/demo/heat/ONAP/onap_openstack.yaml -e ${WORKSPACE}/test/ete/labs/windriver/onap.env $STACK
+
diff --git a/version-manifest/pom.xml b/version-manifest/pom.xml
index 331f357..ace96a7 100644
--- a/version-manifest/pom.xml
+++ b/version-manifest/pom.xml
@@ -2,9 +2,9 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <parent>
-    <groupId>org.onap.integration</groupId>
-    <artifactId>root</artifactId>
-    <version>0.1.0-SNAPSHOT</version>
+    <groupId>org.onap.oparent</groupId>
+    <artifactId>oparent</artifactId>
+    <version>0.1.1</version>
   </parent>
   <artifactId>version-manifest</artifactId>
   <packaging>maven-plugin</packaging>