Fix skipped tests for application creation
Fix WebUI tests for application creation and tests for checking catalog features. Commit should be merged after https://review.openstack.org/#/c/94614/ because archiving packages was moved from tests to jobs. Change-Id: Iab86775bbda3ddfc1800d8024fd1eb782e02eafe
This commit is contained in:
parent
32a0c4f218
commit
f506784b48
@ -1,31 +0,0 @@
|
||||
Namespaces:
|
||||
=: io.murano.apps.AppForUploadTest
|
||||
std: io.murano
|
||||
res: io.murano.resources
|
||||
|
||||
|
||||
Name: AppForUploadTest
|
||||
|
||||
Extends: std:Application
|
||||
|
||||
Properties:
|
||||
name:
|
||||
Contract: $.string().notNull()
|
||||
|
||||
instance:
|
||||
Contract: $.class(res:Instance).notNull()
|
||||
|
||||
username:
|
||||
Contract: $.string().notNull()
|
||||
|
||||
password:
|
||||
Contract: $.string().notNull()
|
||||
|
||||
database:
|
||||
Contract: $.string().notNull()
|
||||
|
||||
Workflow:
|
||||
deploy:
|
||||
Body:
|
||||
- $.instance.deploy()
|
||||
- $resources: new('io.murano.system.Resources')
|
@ -1,85 +0,0 @@
|
||||
Version: 2
|
||||
|
||||
Application:
|
||||
?:
|
||||
type: io.murano.apps.AppForUploadTest
|
||||
name: $.serviceConfiguration.name
|
||||
database: $.serviceConfiguration.database
|
||||
username: $.serviceConfiguration.username
|
||||
password: $.serviceConfiguration.password
|
||||
instance:
|
||||
?:
|
||||
type: io.murano.resources.Instance
|
||||
name: generateHostname($.serviceConfiguration.unitNamingPattern, 1)
|
||||
flavor: $.instanceConfiguration.flavor
|
||||
image: $.instanceConfiguration.osImage
|
||||
|
||||
Forms:
|
||||
- serviceConfiguration:
|
||||
fields:
|
||||
- name: name
|
||||
type: string
|
||||
label: Service Name
|
||||
description: >-
|
||||
To identify your service in logs please specify a service name
|
||||
- name: database
|
||||
type: string
|
||||
label: Database
|
||||
description: >-
|
||||
Please, provide database name that is going to be created
|
||||
- name: username
|
||||
type: string
|
||||
label: Username
|
||||
description: >-
|
||||
Please, provide username that is going to be used to connect to the database
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
descriptionTitle: Password
|
||||
description: >-
|
||||
Please, provide password that is going to be used to connect to the database
|
||||
- name: dcInstances
|
||||
type: integer
|
||||
hidden: true
|
||||
initial: 1
|
||||
- name: unitNamingPattern
|
||||
type: string
|
||||
required: false
|
||||
hidden: true
|
||||
widgetMedia:
|
||||
js: ['muranodashboard/js/support_placeholder.js']
|
||||
css: {all: ['muranodashboard/css/support_placeholder.css']}
|
||||
- instanceConfiguration:
|
||||
fields:
|
||||
- name: title
|
||||
type: string
|
||||
required: false
|
||||
hidden: true
|
||||
descriptionTitle: Instance Configuration
|
||||
description: Specify some instance parameters on which service would be created.
|
||||
- name: flavor
|
||||
type: flavor
|
||||
label: Instance flavor
|
||||
description: >-
|
||||
Select registered in Openstack flavor. Consider that service performance
|
||||
depends on this parameter.
|
||||
required: false
|
||||
- name: osImage
|
||||
type: image
|
||||
imageType: linux
|
||||
label: Instance image
|
||||
description: >-
|
||||
Select valid image for a service. Image should already be prepared and
|
||||
registered in glance.
|
||||
- name: keyPair
|
||||
type: keypair
|
||||
label: Key Pair
|
||||
description: >-
|
||||
Select the Key Pair to control access to instances. You can login to
|
||||
instances using this KeyPair after the deployment of service.
|
||||
required: false
|
||||
- name: availabilityZone
|
||||
type: azone
|
||||
label: Availability zone
|
||||
description: Select availability zone where service would be installed.
|
||||
required: false
|
Binary file not shown.
Before Width: | Height: | Size: 11 KiB |
@ -1,10 +0,0 @@
|
||||
Format: 1.0
|
||||
Type: Application
|
||||
FullName: io.murano.apps.AppForUploadTest
|
||||
Name: AppForUploadTest
|
||||
Description: |
|
||||
This is test package.
|
||||
Author: 'Mirantis, Inc'
|
||||
Tags: [test_tag]
|
||||
Classes:
|
||||
io.murano.apps.AppForUploadTest: AppForUploadTest.yaml
|
@ -1,47 +0,0 @@
|
||||
Namespaces:
|
||||
=: io.murano.apps.PostgreSql
|
||||
std: io.murano
|
||||
res: io.murano.resources
|
||||
|
||||
|
||||
Name: PostgreSql
|
||||
|
||||
Extends: std:Application
|
||||
|
||||
Properties:
|
||||
name:
|
||||
Contract: $.string().notNull()
|
||||
|
||||
instance:
|
||||
Contract: $.class(res:Instance).notNull()
|
||||
|
||||
username:
|
||||
Contract: $.string().notNull()
|
||||
|
||||
password:
|
||||
Contract: $.string().notNull()
|
||||
|
||||
database:
|
||||
Contract: $.string().notNull()
|
||||
|
||||
Workflow:
|
||||
deploy:
|
||||
Body:
|
||||
- $.instance.deploy()
|
||||
- $resources: new('io.murano.system.Resources')
|
||||
# Deploy PostgreSql
|
||||
- $template: $resources.yaml('DeployPostgreSql.template')
|
||||
- $.instance.agent.call($template, $resources)
|
||||
# Configure Database on PostgreSQL
|
||||
- $template: $resources.yaml('ConfigurePostgreSqlDatabase.template').bind(dict(
|
||||
database => $.database,
|
||||
username => $.username,
|
||||
password => $.password
|
||||
))
|
||||
- $.instance.agent.call($template, $resources)
|
||||
|
||||
getIp:
|
||||
Body:
|
||||
- $resources: new('io.murano.system.Resources')
|
||||
- $template: $resources.yaml('GetIP.template')
|
||||
- $.instance.agent.call($template, $resources)
|
@ -1,22 +0,0 @@
|
||||
FormatVersion: 2.0.0
|
||||
Version: 1.0.0
|
||||
Name: Add database and user to PostgreSql
|
||||
|
||||
Parameters:
|
||||
database: $database
|
||||
username: $username
|
||||
password: $password
|
||||
|
||||
Body: |
|
||||
return configure('{0} {1} {2}'.format(args.database, args.username, args.password)).stdout
|
||||
|
||||
Scripts:
|
||||
configure:
|
||||
Type: Application
|
||||
Version: 1.0.0
|
||||
EntryPoint: configurePostgreSqlDatabase.sh
|
||||
Files:
|
||||
- <common.sh>
|
||||
Options:
|
||||
captureStdout: true
|
||||
captureStderr: false
|
@ -1,21 +0,0 @@
|
||||
FormatVersion: 2.0.0
|
||||
Version: 1.0.0
|
||||
Name: Deploy PostgreSql
|
||||
|
||||
Parameters:
|
||||
appName: $appName
|
||||
|
||||
Body: |
|
||||
return deploy(args.appName).stdout
|
||||
|
||||
Scripts:
|
||||
deploy:
|
||||
Type: Application
|
||||
Version: 1.0.0
|
||||
EntryPoint: deployPostgreSql.sh
|
||||
Files:
|
||||
- <installer.sh>
|
||||
- <common.sh>
|
||||
Options:
|
||||
captureStdout: true
|
||||
captureStderr: false
|
@ -1,19 +0,0 @@
|
||||
FormatVersion: 2.0.0
|
||||
Version: 1.0.0
|
||||
Name: Deploy Tomcat
|
||||
|
||||
Parameters:
|
||||
appName: $appName
|
||||
|
||||
Body: |
|
||||
return getIp(args.appName).stdout
|
||||
|
||||
Scripts:
|
||||
getIp:
|
||||
Type: Application
|
||||
Version: 1.0.0
|
||||
EntryPoint: Linux/getIp.sh
|
||||
Files: []
|
||||
Options:
|
||||
captureStdout: true
|
||||
captureStderr: false
|
@ -1,204 +0,0 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
DEBUGLVL=3
|
||||
LOGFILE=/tmp/muranodeployment.log
|
||||
PIPAPPS="pip python-pip pip-python"
|
||||
PIPCMD=""
|
||||
if [ "$DEBUGLVL" -eq 4 ]; then
|
||||
set -x
|
||||
fi
|
||||
function log {
|
||||
if [ "$DEBUGLVL" -gt 0 ]; then
|
||||
chars=$(echo "@$" | wc -c)
|
||||
case $DEBUGLVL in
|
||||
1 )
|
||||
echo -e "LOG:>$@"
|
||||
;;
|
||||
2)
|
||||
echo -e "$(date +"%m-%d-%Y %H:%M") LOG:>$@" | tee --append $LOGFILE
|
||||
;;
|
||||
3)
|
||||
echo -e "$(date +"%m-%d-%Y %H:%M") LOG:>$@" >> $LOGFILE
|
||||
;;
|
||||
4)
|
||||
echo -e "$(date +"%m-%d-%Y %H:%M") LOG:>$@" | tee --append $LOGFILE
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
}
|
||||
function lowercase(){
|
||||
echo "$1" | sed "y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/"
|
||||
}
|
||||
function find_pip()
|
||||
{
|
||||
for cmd in $PIPAPPS
|
||||
do
|
||||
_cmd=$(which $cmd 2>/dev/null)
|
||||
if [ $? -eq 0 ];then
|
||||
break
|
||||
fi
|
||||
done
|
||||
if [ -z $_cmd ];then
|
||||
echo "Can't find \"pip\" in system, please install it first, exiting!"
|
||||
exit 1
|
||||
else
|
||||
PIPCMD=$_cmd
|
||||
fi
|
||||
}
|
||||
OPTIND=1 # Reset if getopts used previously
|
||||
function collect_args(){
|
||||
_n=$1
|
||||
shift
|
||||
ARGS=''
|
||||
while true
|
||||
do
|
||||
if [[ "$_n" == -* ]] || [ -z "$_n" ]; then
|
||||
OPTIND=$((OPTIND - 1))
|
||||
break
|
||||
fi
|
||||
#echo "_n=$_n ; $OPTIND"
|
||||
if [ -z "$ARGS" ]; then
|
||||
ARGS=$OPTARG
|
||||
else
|
||||
ARGS="$ARGS $_n"
|
||||
fi
|
||||
eval _n=\$$OPTIND
|
||||
OPTIND=$((OPTIND + 1))
|
||||
#sleep 1
|
||||
done
|
||||
echo $ARGS
|
||||
unset _n
|
||||
unset ARGS
|
||||
}
|
||||
function get_os(){
|
||||
KERNEL=$(uname -r)
|
||||
MACH=$(uname -m)
|
||||
OS=$(uname)
|
||||
if [ "${OS}" = "Linux" ] ; then
|
||||
if [ -f /etc/redhat-release ] ; then
|
||||
DistroBasedOn='RedHat'
|
||||
Packager='yum'
|
||||
DIST=$(cat /etc/redhat-release |sed s/\ release.*//)
|
||||
PSUEDONAME=$(cat /etc/redhat-release | sed s/.*\(// | sed s/\)//)
|
||||
REV=$(cat /etc/redhat-release | sed s/.*release\ // | sed s/\ .*//)
|
||||
elif [ -f /etc/SuSE-release ] ; then
|
||||
DistroBasedOn='SuSe'
|
||||
Packager='zypper'
|
||||
PSUEDONAME=$(cat /etc/SuSE-release | tr "\n" ' '| sed s/VERSION.*//)
|
||||
REV=$(cat /etc/SuSE-release | tr "\n" ' ' | sed s/.*=\ //)
|
||||
elif [ -f /etc/mandrake-release ] ; then
|
||||
DistroBasedOn='Mandrake'
|
||||
Packager='urpmi urpme'
|
||||
PSUEDONAME=$(cat /etc/mandrake-release | sed s/.*\(// | sed s/\)//)
|
||||
REV=$(cat /etc/mandrake-release | sed s/.*release\ // | sed s/\ .*//)
|
||||
elif [ -f /etc/debian_version ] ; then
|
||||
DistroBasedOn='Debian'
|
||||
Packager='apt-get'
|
||||
DIST=$(cat /etc/lsb-release | grep '^DISTRIB_ID' | awk -F= '{ print $2 }')
|
||||
PSUEDONAME=$(cat /etc/lsb-release | grep '^DISTRIB_CODENAME' | awk -F= '{ print $2 }')
|
||||
REV=$(cat /etc/lsb-release | grep '^DISTRIB_RELEASE' | awk -F= '{ print $2 }')
|
||||
fi
|
||||
if [ -f /etc/UnitedLinux-release ] ; then
|
||||
DIST="${DIST}[$(cat /etc/UnitedLinux-release | tr "\n" ' ' | sed s/VERSION.*//)]"
|
||||
fi
|
||||
OS=$(lowercase $OS)
|
||||
DistroBasedOn=$(lowercase $DistroBasedOn)
|
||||
readonly OS
|
||||
readonly DIST
|
||||
readonly DistroBasedOn
|
||||
readonly PSUEDONAME
|
||||
readonly REV
|
||||
readonly KERNEL
|
||||
readonly MACH
|
||||
#readonly Packager
|
||||
else
|
||||
OS=unknown
|
||||
readonly OS
|
||||
log "OS:$OS"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
function add_fw_rule(){
|
||||
_rule_string=$@
|
||||
_tmp_fw_port=$(echo $_rule_string | grep -o -e "dport [0-9]*\s")
|
||||
_tmp_fw_proto=$(echo $_rule_string | grep -o -e "-p \w*\s")
|
||||
_fw_port=$(echo $_tmp_fw_port | awk '{print $2}')
|
||||
_fw_proto=$(echo $_tmp_fw_proto |awk '{print $2}')
|
||||
_fw_reload=""
|
||||
#find iptables and add rule
|
||||
case $DIST in
|
||||
"Fedora")
|
||||
_fw_cmd=$(which firewall-cmd)
|
||||
_fw_port=$(echo $_rule_string | grep -o -e "dport [0-9]*\s" | awk '{print $2}')
|
||||
_fw_proto=$(echo $_rule_string | grep -o -e "-p \w*\s" | awk '{print $2}')
|
||||
_fw_rule="--permanent --add-port=$_fw_port/$_fw_proto"
|
||||
_fw_enable_rules="$_fw_cmd --reload"
|
||||
;;
|
||||
*)
|
||||
_fw_cmd=$(which iptables)
|
||||
_fw_rule=$_rule_string
|
||||
_fw_enable_rules="service $(basename $_fw_cmd) save"
|
||||
;;
|
||||
esac
|
||||
iptcmdsave=$(which iptables-save)
|
||||
if [[ "$_fw_cmd" != '' ]] && [[ "$iptcmdsave" != '' ]]; then
|
||||
eval "$iptcmdsave | grep -e \"$_tmp_fw_port\" | grep -e \"$_tmp_fw_proto\"" > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
eval $_fw_cmd $_fw_rule
|
||||
if [ $? -ne 0 ]; then
|
||||
log "Can't set firewall rules, exiting..."
|
||||
exit 1
|
||||
else
|
||||
if [ -n "$_fw_enable_rules" ]; then
|
||||
log "Running \"$_fw_enable_rules\""
|
||||
$_fw_enable_rules > /dev/null
|
||||
fi
|
||||
log "$_fw_cmd rule with $_fw_rule set."
|
||||
fi
|
||||
else
|
||||
log "$_fw_cmd rule exists."
|
||||
fi
|
||||
else
|
||||
log "There are no fw found..."
|
||||
fi
|
||||
}
|
||||
function enable_init(){
|
||||
_initctrl=""
|
||||
_init_suffix=""
|
||||
_service=$1
|
||||
case $DistroBasedOn in
|
||||
"debian")
|
||||
_initctrl="update-rc.d"
|
||||
_init_suffix="defaults"
|
||||
;;
|
||||
*)
|
||||
_initctrl="chkconfig"
|
||||
_init_suffix="on"
|
||||
;;
|
||||
esac
|
||||
$_initctrl $_service $_init_suffix
|
||||
if [ $? -ne 0 ]; then
|
||||
log "$_initctrl $_service $_init_suffix - fails!"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
function restart_service(){
|
||||
_service=$1
|
||||
service $_service restart > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
log "Can't start $_service service!"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
function package_renamer(){
|
||||
_pkg=$1
|
||||
case $DistroBasedOn in
|
||||
"debian")
|
||||
_pkg=$(echo $_pkg | sed 's/-devel$/-dev/')
|
||||
;;
|
||||
*)
|
||||
_pkg=$(echo $_pkg | sed 's/-dev$/-devel/')
|
||||
;;
|
||||
esac
|
||||
echo $_pkg
|
||||
}
|
@ -1,28 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
function include(){
|
||||
curr_dir=$(cd $(dirname "$0") && pwd)
|
||||
inc_file_path=$curr_dir/$1
|
||||
if [ -f "$inc_file_path" ]; then
|
||||
. $inc_file_path
|
||||
else
|
||||
echo -e "$inc_file_path not found!"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
include "common.sh"
|
||||
|
||||
get_os
|
||||
[[ $? -ne 0 ]] && exit 1
|
||||
if [[ "$DistroBasedOn" != "redhat" ]]; then
|
||||
DEBUGLVL=4
|
||||
log "ERROR: We are sorry, only \"redhat\" based distribution of Linux supported for this service type, exiting!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
su -c "psql -d postgres -c \"CREATE DATABASE $1\"" -s /bin/sh postgres
|
||||
su -c "psql -d postgres -c \"CREATE USER $2 WITH PASSWORD '$3'\"" -s /bin/sh postgres
|
||||
su -c "psql -d postgres -c \"GRANT ALL PRIVILEGES ON DATABASE $1 to $2;\"" -s /bin/sh postgres
|
||||
echo "host $1 $2 all md5" >> /var/lib/pgsql/data/pg_hba.conf
|
||||
|
||||
systemctl restart postgresql.service
|
@ -1,31 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
function include(){
|
||||
curr_dir=$(cd $(dirname "$0") && pwd)
|
||||
inc_file_path=$curr_dir/$1
|
||||
if [ -f "$inc_file_path" ]; then
|
||||
. $inc_file_path
|
||||
else
|
||||
echo -e "$inc_file_path not found!"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
include "common.sh"
|
||||
|
||||
get_os
|
||||
[[ $? -ne 0 ]] && exit 1
|
||||
if [[ "$DistroBasedOn" != "redhat" ]]; then
|
||||
DEBUGLVL=4
|
||||
log "ERROR: We are sorry, only \"redhat\" based distribution of Linux supported for this service type, exiting!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
bash installer.sh -p sys -i "postgresql-server postgresql-contrib"
|
||||
|
||||
postgresql-setup initdb
|
||||
|
||||
sed -e "s/^#listen_addresses =.*$/listen_addresses = \'*\'/" -i /var/lib/pgsql/data/postgresql.conf
|
||||
add_fw_rule '-I INPUT 1 -p tcp -m tcp --dport 5432 -j ACCEPT -m comment --comment "by murano, PostgreSQL"'
|
||||
|
||||
systemctl enable postgresql.service
|
||||
systemctl start postgresql.service
|
@ -1,2 +0,0 @@
|
||||
#!/bin/sh
|
||||
curl -s http://169.254.169.254/latest/meta-data/local-ipv4
|
@ -1,142 +0,0 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
INSTALLER_OPTS=""
|
||||
UNINSTALLER_OPTS=""
|
||||
PMGR=""
|
||||
PMGR_LIST_OPTS=""
|
||||
|
||||
function include(){
|
||||
curr_dir=$(cd $(dirname "$0") && pwd)
|
||||
inc_file_path=$curr_dir/$1
|
||||
if [ -f "$inc_file_path" ]; then
|
||||
. $inc_file_path
|
||||
else
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
function set_install_options(){
|
||||
case $1 in
|
||||
apt-get )
|
||||
INSTALLER_OPTS="-y -q install"
|
||||
UNINSTALLER_OPTS="-y -q remove"
|
||||
PMGR="dpkg"
|
||||
PMGR_LIST_OPTS="-s"
|
||||
;;
|
||||
yum )
|
||||
INSTALLER_OPTS="--assumeyes install"
|
||||
UNINSTALLER_OPTS="--assumeyes erase"
|
||||
PMGR="rpm"
|
||||
PMGR_LIST_OPTS="-q"
|
||||
;;
|
||||
urpm* )
|
||||
INSTALLER_OPTS="-y"
|
||||
UNINSTALLER_OPTS=""
|
||||
PMGR="rpm"
|
||||
PMGR_LIST_OPTS="-q"
|
||||
;;
|
||||
zypper )
|
||||
INSTALLER_OPTS="install"
|
||||
UNINSTALLER_OPTS="remove --quiet"
|
||||
PMGR="rpm"
|
||||
PMGR_LIST_OPTS="-q"
|
||||
;;
|
||||
pip )
|
||||
INSTALLER_OPTS="install"
|
||||
UNINSTALLER_OPTS="uninstall --yes"
|
||||
find_pip
|
||||
PACKAGER=$PIPCMD
|
||||
PMGR=$PIPCMD
|
||||
PMGR_LIST_OPTS="freeze | grep"
|
||||
;;
|
||||
* )
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
PACKAGER=$(which $1)
|
||||
if [ $? -ne 0 ]; then
|
||||
log "Can't find \"$1\", exiting!"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
function package_install(){
|
||||
PKG=$1
|
||||
eval "$PMGR $PMGR_LIST_OPTS $PKG" > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
log "\"$PKG\" already installed"
|
||||
else
|
||||
log "Installing \"$PKG\" ..."
|
||||
$PACKAGER $INSTALLER_OPTS $PKG > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
log "\"$PKG\" installation fails, exiting!"
|
||||
exit 1
|
||||
else
|
||||
log "\t\t...success"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
function package_uninstall(){
|
||||
PKG=$1
|
||||
eval "$PMGR $PMGR_LIST_OPTS $PKG" > /dev/null 2>&1
|
||||
if [ $? -eq 1 ]; then
|
||||
log "\"$PKG\" not installed"
|
||||
else
|
||||
log "Unnstalling \"$PKG\" ..."
|
||||
$PACKAGER $UNINSTALLER_OPTS $PKG > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
log "\"$PKG\" uninstallation fails, exiting!"
|
||||
exit 1
|
||||
else
|
||||
log "\t\t...success"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
function run_install(){
|
||||
for PKG in $@
|
||||
do
|
||||
package_install $PKG
|
||||
done
|
||||
}
|
||||
function run_uninstall(){
|
||||
for PKG in $@
|
||||
do
|
||||
package_uninstall $PKG
|
||||
done
|
||||
}
|
||||
# Main workflow
|
||||
include "common.sh"
|
||||
if [ $# -eq 0 ]; then
|
||||
script=$(basename $0)
|
||||
echo -e "Usage:\n\t* install packages -- ./$script -p package_manager -i package0 [packageN]\n\t* remove packages -- ./$script -p package_manager -r package0 [packageN]"
|
||||
exit 1
|
||||
fi
|
||||
Packager=''
|
||||
get_os
|
||||
if [ $? -ne 0 ]; then
|
||||
log "Unsupported *nix version ($DistroBasedOn - $DIST/$PSUEDONAME/$REV/$MACH)"
|
||||
exit 1
|
||||
fi
|
||||
while getopts ":p:i:r:" opt ; do
|
||||
case "$opt" in
|
||||
p)
|
||||
if [[ "$OPTARG" != sys ]]; then
|
||||
Packager=$OPTARG
|
||||
fi
|
||||
set_install_options $Packager
|
||||
;;
|
||||
i)
|
||||
n=$OPTARG
|
||||
run_install $(collect_args $n $@)
|
||||
break;
|
||||
;;
|
||||
r)
|
||||
n=$OPTARG
|
||||
run_uninstall $(collect_args $n $@)
|
||||
break;
|
||||
;;
|
||||
\?)
|
||||
log "Invalid option: -$OPTARG" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
shift $((OPTIND-1))
|
@ -1,85 +0,0 @@
|
||||
Version: 2
|
||||
|
||||
Application:
|
||||
?:
|
||||
type: io.murano.apps.PostgreSql
|
||||
name: $.serviceConfiguration.name
|
||||
database: $.serviceConfiguration.database
|
||||
username: $.serviceConfiguration.username
|
||||
password: $.serviceConfiguration.password
|
||||
instance:
|
||||
?:
|
||||
type: io.murano.resources.Instance
|
||||
name: generateHostname($.serviceConfiguration.unitNamingPattern, 1)
|
||||
flavor: $.instanceConfiguration.flavor
|
||||
image: $.instanceConfiguration.osImage
|
||||
|
||||
Forms:
|
||||
- serviceConfiguration:
|
||||
fields:
|
||||
- name: name
|
||||
type: string
|
||||
label: Service Name
|
||||
description: >-
|
||||
To identify your service in logs please specify a service name
|
||||
- name: database
|
||||
type: string
|
||||
label: Database
|
||||
description: >-
|
||||
Please, provide database name that is going to be created
|
||||
- name: username
|
||||
type: string
|
||||
label: Username
|
||||
description: >-
|
||||
Please, provide username that is going to be used to connect to the database
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
descriptionTitle: Password
|
||||
description: >-
|
||||
Please, provide password that is going to be used to connect to the database
|
||||
- name: dcInstances
|
||||
type: integer
|
||||
hidden: true
|
||||
initial: 1
|
||||
- name: unitNamingPattern
|
||||
type: string
|
||||
required: false
|
||||
hidden: true
|
||||
widgetMedia:
|
||||
js: ['muranodashboard/js/support_placeholder.js']
|
||||
css: {all: ['muranodashboard/css/support_placeholder.css']}
|
||||
- instanceConfiguration:
|
||||
fields:
|
||||
- name: title
|
||||
type: string
|
||||
required: false
|
||||
hidden: true
|
||||
descriptionTitle: Instance Configuration
|
||||
description: Specify some instance parameters on which service would be created.
|
||||
- name: flavor
|
||||
type: flavor
|
||||
label: Instance flavor
|
||||
description: >-
|
||||
Select registered in Openstack flavor. Consider that service performance
|
||||
depends on this parameter.
|
||||
required: false
|
||||
- name: osImage
|
||||
type: image
|
||||
imageType: linux
|
||||
label: Instance image
|
||||
description: >-
|
||||
Select valid image for a service. Image should already be prepared and
|
||||
registered in glance.
|
||||
- name: keyPair
|
||||
type: keypair
|
||||
label: Key Pair
|
||||
description: >-
|
||||
Select the Key Pair to control access to instances. You can login to
|
||||
instances using this KeyPair after the deployment of service.
|
||||
required: false
|
||||
- name: availabilityZone
|
||||
type: azone
|
||||
label: Availability zone
|
||||
description: Select availability zone where service would be installed.
|
||||
required: false
|
Binary file not shown.
Before Width: | Height: | Size: 11 KiB |
@ -1,13 +0,0 @@
|
||||
Format: 1.0
|
||||
Type: Application
|
||||
FullName: io.murano.apps.PostgreSql
|
||||
Name: PostgreSQL
|
||||
Description: |
|
||||
PostgreSQL is a powerful, open source object-relational database system.
|
||||
It has more than 15 years of active development and a proven architecture
|
||||
that has earned it a strong reputation for reliability, data integrity,
|
||||
and correctness.
|
||||
Author: 'Mirantis, Inc'
|
||||
Tags: [Database, Postgre, SQL, RDBMS]
|
||||
Classes:
|
||||
io.murano.apps.PostgreSql: PostgreSql.yaml
|
@ -10,11 +10,9 @@ import requests
|
||||
from selenium import webdriver
|
||||
from selenium.common.exceptions import NoSuchElementException
|
||||
import selenium.webdriver.common.by as by
|
||||
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
|
||||
from selenium.webdriver.support.ui import WebDriverWait
|
||||
import testtools
|
||||
import time
|
||||
import zipfile
|
||||
|
||||
from keystoneclient.v2_0 import client as ksclient
|
||||
from muranoclient.client import Client as mclient
|
||||
@ -86,24 +84,11 @@ class UITestCase(BaseDeps):
|
||||
cls.location = os.path.realpath(
|
||||
os.path.join(os.getcwd(), os.path.dirname(__file__)))
|
||||
|
||||
def archive_app(app_name):
|
||||
__folderpath__ = os.path.join(cls.location, "{0}".format(app_name))
|
||||
__rootlen__ = len(__folderpath__) + 1
|
||||
with zipfile.ZipFile(os.path.join(
|
||||
cls.location,
|
||||
"{0}.zip".format(app_name)), "w") as zf:
|
||||
for dirname, _, files in os.walk(__folderpath__):
|
||||
for filename in files:
|
||||
fn = os.path.join(dirname, filename)
|
||||
zf.write(fn, fn[__rootlen__:])
|
||||
|
||||
archive_app('PostgreSQL')
|
||||
archive_app('AppForUploadTest')
|
||||
|
||||
def upload_package(package_name, body):
|
||||
def upload_package(package_name, body, app):
|
||||
|
||||
files = {'%s' % package_name: open(
|
||||
os.path.join(cls.location, 'PostgreSQL.zip'), 'rb')}
|
||||
os.path.join(cls.location, app), 'rb')}
|
||||
|
||||
post_body = {'JsonString': json.dumps(body)}
|
||||
request_url = '{endpoint}{url}'.format(
|
||||
@ -117,7 +102,24 @@ class UITestCase(BaseDeps):
|
||||
|
||||
cls.postgre_id = upload_package(
|
||||
'PostgreSQL',
|
||||
{"categories": ["Web"], "tags": ["tag"]})
|
||||
{"categories": ["Databases"], "tags": ["tag"]},
|
||||
'murano-app-incubator/io.murano.apps.PostgreSql.zip')
|
||||
cls.apache_id = upload_package(
|
||||
'Apache',
|
||||
{"categories": ["Application Servers"], "tags": ["tag"]},
|
||||
'murano-app-incubator/io.murano.apps.apache.Apache.zip')
|
||||
cls.tomcat_id = upload_package(
|
||||
'Tomcat',
|
||||
{"categories": ["Application Servers"], "tags": ["tag"]},
|
||||
'murano-app-incubator/io.murano.apps.apache.Tomcat.zip')
|
||||
cls.telnet_id = upload_package(
|
||||
'Telnet',
|
||||
{"categories": ["Web"], "tags": ["tag"]},
|
||||
'murano-app-incubator/io.murano.apps.linux.Telnet.zip')
|
||||
cls.ad_id = upload_package(
|
||||
'Active Directory',
|
||||
{"categories": ["Microsoft Services"], "tags": ["tag"]},
|
||||
'murano-app-incubator/io.murano.windows.ActiveDirectory.zip')
|
||||
|
||||
def setUp(self):
|
||||
super(UITestCase, self).setUp()
|
||||
@ -140,14 +142,18 @@ class UITestCase(BaseDeps):
|
||||
def tearDownClass(cls):
|
||||
super(UITestCase, cls).tearDownClass()
|
||||
|
||||
os.remove(os.path.join(cls.location, 'PostgreSQL.zip'))
|
||||
os.remove(os.path.join(cls.location, 'AppForUploadTest.zip'))
|
||||
|
||||
def delete_package(package_id):
|
||||
request_url = '{endpoint}{url}'.format(
|
||||
endpoint=cfg.common.murano_url,
|
||||
url='/v1/catalog/packages/{0}'.format(cls.postgre_id))
|
||||
url='/v1/catalog/packages/{0}'.format(package_id))
|
||||
requests.delete(request_url, headers=cls.headers)
|
||||
|
||||
delete_package(cls.postgre_id)
|
||||
delete_package(cls.apache_id)
|
||||
delete_package(cls.tomcat_id)
|
||||
delete_package(cls.telnet_id)
|
||||
delete_package(cls.ad_id)
|
||||
|
||||
def take_screenshot(self, test_name):
|
||||
screenshot_dir = './screenshots'
|
||||
if not os.path.exists(screenshot_dir):
|
||||
@ -238,11 +244,11 @@ class UITestCase(BaseDeps):
|
||||
self.driver.find_element_by_id(
|
||||
"murano__row_{0}__action_show".format(element_id)).click()
|
||||
|
||||
def create_demo_service(self, service_name):
|
||||
def create_demo_service(self, app_name):
|
||||
self.driver.find_element_by_xpath(
|
||||
self.elements.get('apps', 'Demo')).click()
|
||||
|
||||
self.fill_field(by.By.ID, 'id_0-name', service_name)
|
||||
self.fill_field(by.By.ID, 'id_0-name', app_name)
|
||||
self.driver.find_element_by_xpath(
|
||||
self.elements.get('button', 'ButtonSubmit')).click()
|
||||
|
||||
@ -250,33 +256,29 @@ class UITestCase(BaseDeps):
|
||||
self.driver.find_element_by_xpath(
|
||||
self.elements.get('button', 'ButtonSubmit')).click()
|
||||
|
||||
def create_linux_telnet(self, service_name):
|
||||
self.driver.find_element_by_xpath(
|
||||
self.elements.get('apps', 'Telnet')).click()
|
||||
def create_linux_telnet(self, app_name, app_id):
|
||||
self.select_and_click_action_for_app('quick-add', app_id)
|
||||
|
||||
self.fill_field(by.By.ID, 'id_0-name', service_name)
|
||||
self.fill_field(by.By.ID, 'id_0-name', app_name)
|
||||
self.driver.find_element_by_xpath(
|
||||
self.elements.get('button', 'ButtonSubmit')).click()
|
||||
|
||||
self.select_from_list('1-osImage', self.linux_image)
|
||||
self.select_from_list('1-keyPair', self.keypair)
|
||||
self.driver.find_element_by_xpath(
|
||||
self.elements.get('button', 'InputSubmit')).click()
|
||||
|
||||
def create_linux_apache(self, service_name):
|
||||
self.driver.find_element_by_xpath(
|
||||
self.elements.get('apps', 'Apache')).click()
|
||||
def create_linux_apache(self, app_name, app_id):
|
||||
self.select_and_click_action_for_app('quick-add', app_id)
|
||||
|
||||
self.fill_field(by.By.ID, 'id_0-name', service_name)
|
||||
self.fill_field(by.By.ID, 'id_0-name', app_name)
|
||||
self.driver.find_element_by_xpath(
|
||||
self.elements.get('button', 'ButtonSubmit')).click()
|
||||
self.select_from_list('1-osImage', self.linux_image)
|
||||
self.select_from_list('1-keyPair', self.keypair)
|
||||
self.driver.find_element_by_xpath(
|
||||
self.elements.get('button', 'InputSubmit')).click()
|
||||
|
||||
def create_ad_service(self, service_name):
|
||||
self.fill_field(by.By.ID, 'id_0-name', service_name)
|
||||
def create_ad_service(self, app_name):
|
||||
self.fill_field(by.By.ID, 'id_0-name', app_name)
|
||||
self.fill_field(by.By.ID, 'id_0-adminPassword', 'P@ssw0rd')
|
||||
self.fill_field(by.By.ID, 'id_0-adminPassword-clone', 'P@ssw0rd')
|
||||
self.fill_field(by.By.ID, 'id_0-recoveryPassword', 'P@ssw0rd')
|
||||
@ -288,11 +290,11 @@ class UITestCase(BaseDeps):
|
||||
next_button = self.elements.get('button', 'InputSubmit')
|
||||
self.driver.find_element_by_xpath(next_button).click()
|
||||
|
||||
def create_iis_service(self, service_name):
|
||||
def create_iis_service(self, app_name):
|
||||
self.driver.find_element_by_xpath(
|
||||
self.elements.get('apps', 'IIS')).click()
|
||||
|
||||
self.fill_field(by.By.ID, 'id_0-name', service_name)
|
||||
self.fill_field(by.By.ID, 'id_0-name', app_name)
|
||||
self.fill_field(by.By.ID, 'id_0-adminPassword', 'P@ssw0rd')
|
||||
self.fill_field(by.By.ID, 'id_0-adminPassword-clone', 'P@ssw0rd')
|
||||
self.driver.find_element_by_xpath(
|
||||
@ -302,11 +304,11 @@ class UITestCase(BaseDeps):
|
||||
self.driver.find_element_by_xpath(
|
||||
self.elements.get('button', 'InputSubmit')).click()
|
||||
|
||||
def create_asp_service(self, service_name):
|
||||
def create_asp_service(self, app_name):
|
||||
self.driver.find_element_by_xpath(
|
||||
self.elements.get('apps', 'ASP')).click()
|
||||
|
||||
self.fill_field(by.By.ID, 'id_0-name', service_name)
|
||||
self.fill_field(by.By.ID, 'id_0-name', app_name)
|
||||
self.fill_field(by.By.ID, 'id_0-adminPassword', 'P@ssw0rd')
|
||||
self.fill_field(by.By.ID, 'id_0-adminPassword-clone', 'P@ssw0rd')
|
||||
self.fill_field(by.By.ID, 'id_0-repository', self.asp_git_repository)
|
||||
@ -318,11 +320,11 @@ class UITestCase(BaseDeps):
|
||||
self.driver.find_element_by_xpath(
|
||||
self.elements.get('button', 'InputSubmit')).click()
|
||||
|
||||
def create_iisfarm_service(self, service_name):
|
||||
def create_iisfarm_service(self, app_name):
|
||||
self.driver.find_element_by_xpath(
|
||||
self.elements.get('apps', 'IISFarm')).click()
|
||||
|
||||
self.fill_field(by.By.ID, 'id_0-name', service_name)
|
||||
self.fill_field(by.By.ID, 'id_0-name', app_name)
|
||||
self.fill_field(by.By.ID, 'id_0-adminPassword', 'P@ssw0rd')
|
||||
self.fill_field(by.By.ID, 'id_0-adminPassword-clone', 'P@ssw0rd')
|
||||
|
||||
@ -333,11 +335,11 @@ class UITestCase(BaseDeps):
|
||||
self.driver.find_element_by_xpath(
|
||||
self.elements.get('button', 'InputSubmit')).click()
|
||||
|
||||
def create_aspfarm_service(self, service_name):
|
||||
def create_aspfarm_service(self, app_name):
|
||||
self.driver.find_element_by_xpath(
|
||||
self.elements.get('apps', 'ASPFarm')).click()
|
||||
|
||||
self.fill_field(by.By.ID, 'id_0-name', service_name)
|
||||
self.fill_field(by.By.ID, 'id_0-name', app_name)
|
||||
self.fill_field(by.By.ID, 'id_0-adminPassword', 'P@ssw0rd')
|
||||
self.fill_field(by.By.ID, 'id_0-adminPassword-clone', 'P@ssw0rd')
|
||||
self.fill_field(by.By.ID, 'id_0-repository', self.asp_git_repository)
|
||||
@ -349,11 +351,11 @@ class UITestCase(BaseDeps):
|
||||
self.driver.find_element_by_xpath(
|
||||
self.elements.get('button', 'InputSubmit')).click()
|
||||
|
||||
def create_mssql_service(self, service_name):
|
||||
def create_mssql_service(self, app_name):
|
||||
self.driver.find_element_by_xpath(
|
||||
self.elements.get('apps', 'MSSQL')).click()
|
||||
|
||||
self.fill_field(by.By.ID, 'id_0-name', service_name)
|
||||
self.fill_field(by.By.ID, 'id_0-name', app_name)
|
||||
self.fill_field(by.By.ID, 'id_0-adminPassword', 'P@ssw0rd')
|
||||
self.fill_field(by.By.ID, 'id_0-adminPassword-clone', 'P@ssw0rd')
|
||||
self.fill_field(by.By.ID, 'id_0-saPassword', 'P@ssw0rd')
|
||||
@ -366,11 +368,11 @@ class UITestCase(BaseDeps):
|
||||
self.driver.find_element_by_xpath(
|
||||
self.elements.get('button', 'InputSubmit')).click()
|
||||
|
||||
def create_sql_cluster_service(self, service_name, domain_name):
|
||||
def create_sql_cluster_service(self, app_name, domain_name):
|
||||
self.driver.find_element_by_xpath(
|
||||
self.elements.get('apps', 'SQL_cluster')).click()
|
||||
|
||||
self.fill_field(by.By.ID, 'id_0-name', service_name)
|
||||
self.fill_field(by.By.ID, 'id_0-name', app_name)
|
||||
self.fill_field(by.By.ID, 'id_0-adminPassword', 'P@ssw0rd')
|
||||
self.fill_field(by.By.ID, 'id_0-adminPassword-clone', 'P@ssw0rd')
|
||||
|
||||
@ -407,15 +409,11 @@ class UITestCase(BaseDeps):
|
||||
self.driver.find_element_by_xpath(
|
||||
self.elements.get('button', 'ButtonSubmit')).click()
|
||||
|
||||
def create_tomcat_service(self, service_name, database):
|
||||
self.driver.find_element_by_xpath(
|
||||
self.elements.get('apps', 'Tomcat')).click()
|
||||
|
||||
self.fill_field(by.By.ID, 'id_0-name', service_name)
|
||||
def create_tomcat_service(self, app_name, database):
|
||||
self.fill_field(by.By.ID, 'id_0-name', app_name)
|
||||
self.select_from_list('0-database', database)
|
||||
self.fill_field(by.By.ID, 'id_0-repository', self.tomcat_repository)
|
||||
|
||||
self.select_from_list('id_0-psqlDatabase', database)
|
||||
|
||||
self.driver.find_element_by_xpath(
|
||||
self.elements.get('button', 'ButtonSubmit')).click()
|
||||
|
||||
@ -423,10 +421,10 @@ class UITestCase(BaseDeps):
|
||||
|
||||
self.driver.find_element_by_xpath(
|
||||
self.elements.get('button', 'InputSubmit')).click()
|
||||
self.driver.find_element_by_xpath(
|
||||
self.elements.get('button', 'InputSubmit')).click()
|
||||
|
||||
def create_postgreSQL_service(self, app_name):
|
||||
self.driver.find_element_by_xpath(
|
||||
self.elements.get('apps', 'postgreSQL')).click()
|
||||
self.fill_field(by.By.ID, 'id_0-name', app_name)
|
||||
self.fill_field(by.By.ID, 'id_0-database', 'psql-base')
|
||||
self.fill_field(by.By.ID, 'id_0-username', 'admin')
|
||||
@ -446,13 +444,6 @@ class UITestCase(BaseDeps):
|
||||
".//*[@data-display='{0}']".format(el_name)).get_attribute("id")
|
||||
return path.split('__')[-1]
|
||||
|
||||
def click_to_add_to_env(self, app_name):
|
||||
self.navigate_to('Manage')
|
||||
self.go_to_submenu('Package Definitions')
|
||||
app_id = self.get_element_id(app_name)
|
||||
self.navigate_to('Application_Catalog')
|
||||
self.go_to_submenu('Applications')
|
||||
|
||||
def delete_component(self, component_name):
|
||||
component_id = self.get_element_id(component_name)
|
||||
self.driver.find_element_by_id(
|
||||
@ -471,7 +462,7 @@ class UITestCase(BaseDeps):
|
||||
self.elements.get('button', 'ButtonSubmit')).click()
|
||||
time.sleep(3)
|
||||
appeared_text = self.driver.find_element_by_xpath(
|
||||
"(.//div[@class = 'control-group form-field clearfix error'][%d])"
|
||||
".//div[@class = 'control-group form-field clearfix error'][%d]"
|
||||
% num).text
|
||||
index = appeared_text.find(error_message)
|
||||
|
||||
|
@ -7,6 +7,4 @@ Next=//*[@id="create_service_form"]/strong/strong/div/button
|
||||
Murano=//*[@id="main_content"]/div[2]/div/dl/dt[3]/div
|
||||
Application_Catalog=//*[@id="main_content"]/div[2]/div/dl/dd[3]/div[1]/h4/div
|
||||
Manage=//*[@id="main_content"]/div[2]/div/dl/dd[3]/div[2]/h4/div
|
||||
[apps]
|
||||
AD=.//*[@id='main_content']/div[3]/div[1]/div[1]/div/div[2]/a[1]
|
||||
IIS=.//*[@id='main_content']/div[3]/div[1]/div[3]/div/div[2]/a[1]
|
||||
AddToEnv=.//*[@href='/horizon/murano/create_environment?next=/horizon/murano/catalog/index']
|
||||
|
@ -7,4 +7,4 @@ tenant = WebTestProject
|
||||
keystone_url = http://127.0.0.1:5000/v2.0/
|
||||
keypair_name = default_keypair
|
||||
asp_git_repository = git_repo_for_asp_app
|
||||
tomcat_repository = git_repo_for_tomcat_servlets
|
||||
tomcat_repository = git_repo_for_tomcat
|
@ -118,7 +118,7 @@ class UISanityTests(UITestCase):
|
||||
self.assertIn('{"type": "windows.2012", "title": "TestImage"}',
|
||||
self.driver.page_source)
|
||||
|
||||
@testtools.skip("New UI in progress")
|
||||
@testtools.skip("App is not in incubator")
|
||||
def test_006_create_and_delete_demo_service(self):
|
||||
"""
|
||||
Test check ability to create and delete demo service
|
||||
@ -146,85 +146,76 @@ class UISanityTests(UITestCase):
|
||||
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
|
||||
'DemoService'))
|
||||
|
||||
@testtools.skip("New UI in progress")
|
||||
def test_007_create_and_delete_linux_telnet(self):
|
||||
"""
|
||||
Test check ability to create and delete linux telnet service
|
||||
Test check ability to create and delete Linux Telnet service
|
||||
|
||||
Scenario:
|
||||
1. Navigate to Environments page
|
||||
2. Create environment
|
||||
3. Create linux telnet service in this environment by filling
|
||||
the creation form
|
||||
4. Delete linux telnet service from environment
|
||||
1. Navigate to 'Application Catalog'
|
||||
2. Click on 'Quick Deploy' for Telnet application
|
||||
3. Create Linux Telnet app by filling the creation form
|
||||
4. Delete Linux Telnet app from environment
|
||||
"""
|
||||
self.go_to_submenu('Environments')
|
||||
self.create_environment('test')
|
||||
self.env_to_components_list('test')
|
||||
self.navigate_to('Manage')
|
||||
self.go_to_submenu('Package Definitions')
|
||||
telnet_id = self.get_element_id('Telnet')
|
||||
|
||||
self.driver.find_element_by_link_text('Add Application').click()
|
||||
self.create_linux_telnet('linuxtelnet')
|
||||
self.navigate_to('Application_Catalog')
|
||||
self.go_to_submenu('Applications')
|
||||
|
||||
self.create_linux_telnet('linuxtelnet', telnet_id)
|
||||
|
||||
self.go_to_submenu('Environments')
|
||||
self.env_to_components_list('test')
|
||||
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
|
||||
'linuxtelnet'))
|
||||
|
||||
self.delete_component('linuxtelnet')
|
||||
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
|
||||
'linuxtelnet'))
|
||||
|
||||
@testtools.skip("New UI in progress")
|
||||
def test_008_create_and_delete_linux_apache(self):
|
||||
"""
|
||||
Test check ability to create and delete linux apache service
|
||||
Test check ability to create and delete Linux Apache service
|
||||
|
||||
Scenario:
|
||||
1. Navigate to Environments page
|
||||
2. Create environment
|
||||
3. Create linux apache service in this environment by filling
|
||||
the creation form
|
||||
4. Delete linux apache service from environment
|
||||
1. Navigate to 'Application Catalog'
|
||||
2. Click on 'Quick Deploy' for Apache application
|
||||
3. Create Linux Apache app by filling the creation form
|
||||
4. Delete Linux Apache app from environment
|
||||
"""
|
||||
self.go_to_submenu('Environments')
|
||||
self.create_environment('test')
|
||||
self.env_to_components_list('test')
|
||||
self.navigate_to('Manage')
|
||||
self.go_to_submenu('Package Definitions')
|
||||
apache_id = self.get_element_id('Apache HTTP Server')
|
||||
|
||||
self.driver.find_element_by_link_text('Add Component').click()
|
||||
self.create_linux_apache('linuxapache')
|
||||
self.navigate_to('Application_Catalog')
|
||||
self.go_to_submenu('Applications')
|
||||
|
||||
self.create_linux_apache('linuxapache', apache_id)
|
||||
|
||||
self.go_to_submenu('Environments')
|
||||
self.env_to_components_list('test')
|
||||
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
|
||||
'linuxapache'))
|
||||
|
||||
self.delete_component('linuxapache')
|
||||
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
|
||||
'linuxapache'))
|
||||
|
||||
@testtools.skip("New UI in progress")
|
||||
def test_009_create_and_delete_ad_service(self):
|
||||
"""
|
||||
Test check ability to create and delete active directory service
|
||||
Test check ability to create and delete Active Directory service
|
||||
|
||||
Scenario:
|
||||
1. Navigate to Environments page
|
||||
2. Create environment
|
||||
3. Create active directory service in this environment by filling
|
||||
the creation form
|
||||
4. Delete active directory service from environment
|
||||
1. Navigate to 'Application Catalog'
|
||||
2. Click on 'Quick Deploy' for Active Directory application
|
||||
3. Create Active Directory app by filling the creation form
|
||||
4. Delete Active Directory app from environment
|
||||
"""
|
||||
self.go_to_submenu('Environments')
|
||||
self.create_environment('test')
|
||||
self.env_to_components_list('test')
|
||||
self.navigate_to('Manage')
|
||||
self.go_to_submenu('Package Definitions')
|
||||
ad_id = self.get_element_id('Active Directory')
|
||||
|
||||
self.driver.find_element_by_link_text('Add Component').click()
|
||||
self.driver.find_element_by_xpath(
|
||||
self.elements.get('apps', 'AD')).click()
|
||||
self.navigate_to('Application_Catalog')
|
||||
self.go_to_submenu('Applications')
|
||||
|
||||
self.select_and_click_action_for_app('quick-add', ad_id)
|
||||
self.create_ad_service('muranotest.domain')
|
||||
|
||||
self.go_to_submenu('Environments')
|
||||
self.env_to_components_list('test')
|
||||
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
|
||||
'muranotest.domain'))
|
||||
|
||||
@ -232,7 +223,7 @@ class UISanityTests(UITestCase):
|
||||
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
|
||||
'muranotest.domain'))
|
||||
|
||||
@testtools.skip("New UI in progress")
|
||||
@testtools.skip("App is not in incubator")
|
||||
def test_010_create_and_delete_iis_service(self):
|
||||
"""
|
||||
Test check ability to create and delete IIS service
|
||||
@ -259,7 +250,7 @@ class UISanityTests(UITestCase):
|
||||
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
|
||||
'IISService'))
|
||||
|
||||
@testtools.skip("New UI in progress")
|
||||
@testtools.skip("App is not in incubator")
|
||||
def test_011_create_and_delete_asp_service(self):
|
||||
"""
|
||||
Test check ability to create and delete ASP.Net service
|
||||
@ -287,7 +278,7 @@ class UISanityTests(UITestCase):
|
||||
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
|
||||
'ASPService'))
|
||||
|
||||
@testtools.skip("New UI in progress")
|
||||
@testtools.skip("App is not in incubator")
|
||||
def test_012_create_and_delete_iisfarm_service(self):
|
||||
"""
|
||||
Test check ability to create and delete IIS Farm service
|
||||
@ -315,7 +306,7 @@ class UISanityTests(UITestCase):
|
||||
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
|
||||
'IISFarmService'))
|
||||
|
||||
@testtools.skip("New UI in progress")
|
||||
@testtools.skip("App is not in incubator")
|
||||
def test_013_create_and_delete_aspfarm_service(self):
|
||||
"""
|
||||
Test check ability to create and delete ASP.Net Farm service
|
||||
@ -343,7 +334,7 @@ class UISanityTests(UITestCase):
|
||||
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
|
||||
'ASPFarmService'))
|
||||
|
||||
@testtools.skip("New UI in progress")
|
||||
@testtools.skip("App is not in incubator")
|
||||
def test_014_create_and_delete_mssql_service(self):
|
||||
"""
|
||||
Test check ability to create and delete MSSQL service
|
||||
@ -371,7 +362,7 @@ class UISanityTests(UITestCase):
|
||||
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
|
||||
'MSSQLService'))
|
||||
|
||||
@testtools.skip("New UI in progress")
|
||||
@testtools.skip("App is not in incubator")
|
||||
def test_015_create_and_delete_sql_cluster_service(self):
|
||||
"""
|
||||
Test check ability to create and delete MSSQL cluster service
|
||||
@ -401,53 +392,67 @@ class UISanityTests(UITestCase):
|
||||
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
|
||||
'SQLCluster'))
|
||||
|
||||
@testtools.skip("New UI in progress")
|
||||
def test_016_create_and_delete_tomcat_service(self):
|
||||
"""
|
||||
Test check ability to create and delete tomcat service
|
||||
Test check ability to create and delete Tomcat service
|
||||
|
||||
Scenario:
|
||||
1. Navigate to Environments page
|
||||
2. Create environment
|
||||
3. Create tomcat service in this environment by filling
|
||||
the creation form
|
||||
4. Delete tomcat service from environment
|
||||
1. Navigate to 'Application Catalog'
|
||||
2. Click on 'Quick Deploy' for Tomcat application
|
||||
3. Firstly, create PostgreSQL app by filling the creation form
|
||||
4. Create Tomcat app, in case of database select created
|
||||
early PostgreSQL
|
||||
5. Delete Tomcat app from environment
|
||||
"""
|
||||
self.navigate_to('Manage')
|
||||
self.go_to_submenu('Package Definitions')
|
||||
tomcat_id = self.get_element_id('Apache Tomcat')
|
||||
postgre_id = self.get_element_id('PostgreSQL')
|
||||
|
||||
self.navigate_to('Application_Catalog')
|
||||
self.go_to_submenu('Environments')
|
||||
self.create_environment('test')
|
||||
env_id = self.get_element_id('test')
|
||||
self.env_to_components_list('test')
|
||||
|
||||
self.driver.find_element_by_link_text('Add Component').click()
|
||||
self.create_postgreSQL_service('posrgreSQL')
|
||||
self.select_and_click_action_for_app('add/{0}'.format(env_id),
|
||||
postgre_id)
|
||||
self.create_postgreSQL_service('PostgreSQL')
|
||||
self.driver.find_element_by_xpath(
|
||||
self.elements.get('button', 'InputSubmit')).click()
|
||||
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
|
||||
'posrgreSQL'))
|
||||
'PostgreSQL'))
|
||||
|
||||
self.driver.find_element_by_link_text('Create Service').click()
|
||||
self.create_tomcat_service('tomcat-serv', 'posrgreSQL')
|
||||
self.driver.find_element_by_link_text('Add Component').click()
|
||||
self.select_and_click_action_for_app('add/{0}'.format(env_id),
|
||||
tomcat_id)
|
||||
|
||||
self.create_tomcat_service('tomcat-serv', 'PostgreSQL')
|
||||
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
|
||||
'tomcat-serv'))
|
||||
|
||||
self.delete_component('tomcat-serv')
|
||||
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
|
||||
'tomcat-serv'))
|
||||
|
||||
@testtools.skip("New UI in progress")
|
||||
def test_017_create_and_delete_postgreSQL_service(self):
|
||||
"""
|
||||
Test check ability to create and delete postgreSQL service
|
||||
Test check ability to create and delete PostgreSQL service
|
||||
|
||||
Scenario:
|
||||
1. Navigate to Environments page
|
||||
2. Create environment
|
||||
3. Create postgreSQL service in this environment by filling
|
||||
the creation form
|
||||
4. Delete postgreSQL service from environment
|
||||
1. Navigate to 'Application Catalog'
|
||||
2. Click on 'Quick Deploy' for PostgreSQL application
|
||||
3. Create PostgreSQL app by filling the creation form
|
||||
4. Delete PostgreSQL app from environment
|
||||
"""
|
||||
self.go_to_submenu('Environments')
|
||||
self.create_environment('test')
|
||||
self.env_to_components_list('test')
|
||||
self.navigate_to('Manage')
|
||||
self.go_to_submenu('Package Definitions')
|
||||
postgresql_id = self.get_element_id('PostgreSQL')
|
||||
|
||||
self.driver.find_element_by_link_text('Add Component').click()
|
||||
self.navigate_to('Application_Catalog')
|
||||
self.go_to_submenu('Applications')
|
||||
|
||||
self.select_and_click_action_for_app('quick-add', postgresql_id)
|
||||
self.create_postgreSQL_service('PostgreSQL')
|
||||
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
|
||||
'PostgreSQL'))
|
||||
@ -456,7 +461,7 @@ class UISanityTests(UITestCase):
|
||||
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
|
||||
'PostgreSQL'))
|
||||
|
||||
@testtools.skip("New UI in progress")
|
||||
@testtools.skip("https://bugs.launchpad.net/murano/+bug/1321690")
|
||||
def test_018_check_regex_expression_for_ad_name(self):
|
||||
"""
|
||||
Test check that validation of domain name field work and appropriate
|
||||
@ -483,13 +488,14 @@ class UISanityTests(UITestCase):
|
||||
12. Set "domain.local" as a domain name and check that
|
||||
error message didn't appear
|
||||
"""
|
||||
self.go_to_submenu('Environments')
|
||||
self.create_environment('test')
|
||||
self.env_to_components_list('test')
|
||||
self.navigate_to('Manage')
|
||||
self.go_to_submenu('Package Definitions')
|
||||
ad_id = self.get_element_id('Active Directory')
|
||||
|
||||
self.driver.find_element_by_link_text('Add Component').click()
|
||||
self.driver.find_element_by_xpath(
|
||||
self.elements.get('apps', 'AD')).click()
|
||||
self.navigate_to('Application_Catalog')
|
||||
self.go_to_submenu('Applications')
|
||||
|
||||
self.select_and_click_action_for_app('quick-add', ad_id)
|
||||
|
||||
self.fill_field(by.By.ID, field='id_0-name', value='a')
|
||||
self.assertTrue(self.check_that_error_message_is_correct(
|
||||
@ -537,7 +543,7 @@ class UISanityTests(UITestCase):
|
||||
'Period characters are allowed only when '
|
||||
'they are used to delimit the components of domain style names', 1))
|
||||
|
||||
@testtools.skip("New UI in progress")
|
||||
@testtools.skip("App is not in incubator")
|
||||
def test_019_check_regex_expression_for_iis_name(self):
|
||||
"""
|
||||
Test check that validation of iis name field work and appropriate
|
||||
@ -577,70 +583,67 @@ class UISanityTests(UITestCase):
|
||||
self.assertFalse(self.check_that_error_message_is_correct(
|
||||
'Just letters, numbers, underscores and hyphens are allowed.', 1))
|
||||
|
||||
@testtools.skip("New UI in progress")
|
||||
def test_020_check_regex_expression_for_git_repo_field(self):
|
||||
"""
|
||||
Test check that validation of git repository field work and appropriate
|
||||
error message is appeared after entering incorrect url
|
||||
|
||||
Scenario:
|
||||
1. Navigate to Environments page
|
||||
2. Create environment and start to create ASP.Net service
|
||||
1. Navigate to Application Catalog > Applications
|
||||
2. Start to create Tomcat service
|
||||
3. Set "a" as a git repository url and verify error message
|
||||
4. Set "://@:" as a git repository url and verify error message
|
||||
"""
|
||||
self.go_to_submenu('Environments')
|
||||
self.create_environment('test')
|
||||
self.env_to_components_list('test')
|
||||
self.navigate_to('Manage')
|
||||
self.go_to_submenu('Package Definitions')
|
||||
tomcat_id = self.get_element_id('Apache Tomcat')
|
||||
|
||||
self.driver.find_element_by_link_text('Add Component').click()
|
||||
self.driver.find_element_by_xpath(
|
||||
self.elements.get('apps', 'ASP')).click()
|
||||
self.navigate_to('Application_Catalog')
|
||||
self.go_to_submenu('Applications')
|
||||
self.select_and_click_action_for_app('quick-add', tomcat_id)
|
||||
|
||||
self.fill_field(by.By.ID, field='id_0-repository', value='a')
|
||||
self.assertTrue(self.check_that_error_message_is_correct(
|
||||
'Enter correct git repository url', 4))
|
||||
'Enter a correct git repository URL', 3))
|
||||
|
||||
self.fill_field(by.By.ID, field='id_0-repository', value='://@:')
|
||||
self.assertTrue(self.check_that_error_message_is_correct(
|
||||
'Enter correct git repository url', 4))
|
||||
'Enter a correct git repository URL', 3))
|
||||
|
||||
@testtools.skip("New UI in progress")
|
||||
def test_021_check_validation_for_hostname_template_field(self):
|
||||
"""
|
||||
Test check that validation of hostname template field work and
|
||||
appropriate error message is appeared after entering incorrect name
|
||||
|
||||
Scenario:
|
||||
1. Navigate to Environments page
|
||||
2. Create environment and start to create demo service
|
||||
3. Set "demo" as a hostname template name a and verify error message
|
||||
4. Set "demo" as a hostname template name and change number of
|
||||
instances from 2 to 1 and check that there is no error message
|
||||
1. Navigate to Application Catalog > Applications
|
||||
2. Start to create Telnet service
|
||||
3. Set "`qwe`" as a hostname template name a and verify error message
|
||||
4. Set "host" as a hostname template name and
|
||||
check that there is no error message
|
||||
"""
|
||||
self.go_to_submenu('Environments')
|
||||
self.create_environment('test')
|
||||
self.env_to_components_list('test')
|
||||
self.navigate_to('Manage')
|
||||
self.go_to_submenu('Package Definitions')
|
||||
telnet_id = self.get_element_id('Telnet')
|
||||
|
||||
self.driver.find_element_by_link_text('Add Component').click()
|
||||
self.driver.find_element_by_xpath(
|
||||
self.elements.get('apps', 'Demo')).click()
|
||||
self.navigate_to('Application_Catalog')
|
||||
self.go_to_submenu('Applications')
|
||||
|
||||
self.fill_field(by.By.ID, 'id_0-name', 'demo')
|
||||
self.fill_field(by.By.ID, 'id_0-unitNamingPattern', 'demo')
|
||||
|
||||
xpath = ".//*[@id='create_service_form']/div[1]/div[1]/fieldset/div[1]"
|
||||
self.select_and_click_action_for_app('quick-add', telnet_id)
|
||||
self.fill_field(by.By.ID, 'id_0-name', 'name')
|
||||
self.fill_field(by.By.ID, 'id_0-unitNamingPattern', '`qwe`')
|
||||
|
||||
self.driver.find_element_by_xpath(
|
||||
self.elements.get('button', 'ButtonSubmit')).click()
|
||||
self.assertTrue(self.check_element_on_page(by.By.XPATH, xpath))
|
||||
self.assertTrue(self.check_that_error_message_is_correct(
|
||||
'Enter a valid value.', 1))
|
||||
|
||||
self.fill_field(by.By.ID, 'id_0-dcInstances', value='1')
|
||||
self.fill_field(by.By.ID, 'id_0-unitNamingPattern', 'host')
|
||||
self.driver.find_element_by_xpath(
|
||||
self.elements.get('button', 'ButtonSubmit')).click()
|
||||
|
||||
WebDriverWait(self.driver, 10).until(lambda s: s.find_element(
|
||||
by.By.ID, '1-osImage').is_displayed())
|
||||
by.By.ID, 'id_1-osImage').is_displayed())
|
||||
|
||||
@testtools.skip("New UI in progress")
|
||||
def test_022_check_bool_field_validation(self):
|
||||
@ -702,7 +705,7 @@ class UISanityTests(UITestCase):
|
||||
self.assertTrue(self.check_that_error_message_is_correct(
|
||||
'This field is required.', 1))
|
||||
|
||||
@testtools.skip("New UI in progress")
|
||||
@testtools.skip("App is not in incubator")
|
||||
def test_023_positive_scenario_1_for_the_MS_SQL_Cluster_Form(self):
|
||||
"""
|
||||
Test check one possible scenario of creation mssql cluster
|
||||
@ -748,7 +751,7 @@ class UISanityTests(UITestCase):
|
||||
self.assertTrue(self.check_element_on_page(
|
||||
by.By.ID, 'id_msSqlClusterServer-1-clusterIp'))
|
||||
|
||||
@testtools.skip("New UI in progress")
|
||||
@testtools.skip("App is not in incubator")
|
||||
def test_024_positive_scenario_2_for_the_MS_SQL_Cluster_Form(self):
|
||||
"""
|
||||
Test check one possible scenario of creation mssql cluster
|
||||
@ -800,7 +803,7 @@ class UISanityTests(UITestCase):
|
||||
self.assertTrue(self.check_element_on_page(
|
||||
by.By.ID, 'id_msSqlClusterServer-1-clusterIp'))
|
||||
|
||||
@testtools.skip("New UI in progress")
|
||||
@testtools.skip("App is not in incubator")
|
||||
def test_025_positive_scenario_3_for_the_MS_SQL_Cluster_Form(self):
|
||||
"""
|
||||
Test check one possible scenario of creation mssql cluster
|
||||
@ -883,7 +886,7 @@ class UISanityTests(UITestCase):
|
||||
self.assertTrue(self.check_element_on_page(
|
||||
by.By.XPATH, './/*[@data-display="PostgreSQL"]'))
|
||||
|
||||
def test_041_modify_description(self):
|
||||
def test_040_modify_description(self):
|
||||
"""
|
||||
Test check ability to change description of the package
|
||||
|
||||
@ -993,7 +996,7 @@ class UISanityTests(UITestCase):
|
||||
self.assertTrue(self.check_package_parameter(
|
||||
'PostgreSQL', '3', 'True'))
|
||||
|
||||
def test_040_check_opportunity_to_delete_package(self):
|
||||
def test_041_check_opportunity_to_delete_package(self):
|
||||
"""
|
||||
Test check ability to delete package from database
|
||||
|
||||
@ -1025,7 +1028,6 @@ class UISanityTests(UITestCase):
|
||||
self.assertTrue(self.check_element_on_page(
|
||||
by.By.XPATH, ".//*[@id='content_body']/div[1]/h2"))
|
||||
|
||||
@testtools.skip("There are no default apps in Murano")
|
||||
def test_034_env_creation_form_app_catalog_page(self):
|
||||
"""
|
||||
Test checks that app's option 'Add to environment' is operable
|
||||
@ -1039,15 +1041,15 @@ class UISanityTests(UITestCase):
|
||||
4. Add application in created environment
|
||||
"""
|
||||
self.go_to_submenu('Applications')
|
||||
self.driver.find_element_by_link_text('Add to environment').click()
|
||||
self.driver.find_element_by_xpath(
|
||||
self.elements.get('button', 'AddToEnv')).click()
|
||||
|
||||
self.fill_field(by.By.ID, 'id_name', 'test_033')
|
||||
self.fill_field(by.By.ID, 'id_name', 'test_env')
|
||||
self.driver.find_element_by_xpath(
|
||||
self.elements.get('button', 'InputSubmit')).click()
|
||||
|
||||
self.navigate_to('Application_Catalog')
|
||||
self.go_to_submenu('Environments')
|
||||
self.driver.find_element_by_link_text('test_033').click()
|
||||
self.driver.find_element_by_link_text('test_env').click()
|
||||
self.assertTrue(
|
||||
self.driver.find_element_by_id('services__action_AddApplication'))
|
||||
|
||||
@ -1089,7 +1091,6 @@ class UISanityTests(UITestCase):
|
||||
self.driver.find_element_by_xpath(
|
||||
".//*[@id='MuranoSearchPanel']/form/button").click()
|
||||
|
||||
@testtools.skip("There are no default apps in Murano")
|
||||
def test_037_filter_by_category(self):
|
||||
"""
|
||||
Test checks ability to filter applications by category
|
||||
@ -1102,28 +1103,28 @@ class UISanityTests(UITestCase):
|
||||
4. Verify result
|
||||
"""
|
||||
self.navigate_to('Manage')
|
||||
self.go_to_submenu('Package Definition')
|
||||
self.go_to_submenu('Package Definitions')
|
||||
|
||||
package_category1 = self.get_element_id('PACKAGE_CATEGORY1')
|
||||
package_category2 = self.get_element_id('PACKAGE_CATEGORY2')
|
||||
package_category1 = self.get_element_id('PostgreSQL')
|
||||
package_category2 = self.get_element_id('Active Directory')
|
||||
|
||||
self.navigate_to('Application_Catalog')
|
||||
self.go_to_submenu('Applications')
|
||||
self.driver.find_element_by_id('MuranoCategoriesPanelToggle').click()
|
||||
self.driver.find_element_by_link_text('CATEGORY1').click()
|
||||
self.driver.find_element_by_link_text('Databases').click()
|
||||
|
||||
self.assertTrue(self.check_element_on_page(
|
||||
by.By.XPATH, "//*[@href='/murano/catalog/details/{1}']".
|
||||
by.By.XPATH, ".//*[@href='/horizon/murano/catalog/details/{0}']".
|
||||
format(package_category1)))
|
||||
|
||||
self.driver.find_element_by_id('MuranoCategoriesPanelToggle').click()
|
||||
self.driver.find_element_by_link_text('CATEGORY2').click()
|
||||
self.driver.find_element_by_link_text('Microsoft Services').click()
|
||||
|
||||
self.assertTrue(self.check_element_on_page(
|
||||
by.By.XPATH, "//*[@href='/murano/catalog/details/{1}']".
|
||||
by.By.XPATH, ".//*[@href='/horizon/murano/catalog/details/{0}']".
|
||||
format(package_category2)))
|
||||
|
||||
@testtools.skip("There are no default apps in Murano")
|
||||
@testtools.skip("Work in progress")
|
||||
def test_038_check_option_switch_env(self):
|
||||
"""
|
||||
Test checks ability to switch environment and to add app in other env
|
||||
@ -1139,20 +1140,31 @@ class UISanityTests(UITestCase):
|
||||
8. Navigate to 'Application Catalog>Environments' and go to the env2
|
||||
9. Check that added application is here
|
||||
"""
|
||||
self.navigate_to('Manage')
|
||||
self.go_to_submenu('Package Definitions')
|
||||
|
||||
app_id = self.get_element_id('Telnet')
|
||||
|
||||
self.navigate_to('Application_Catalog')
|
||||
self.go_to_submenu('Environments')
|
||||
self.create_environment('env1')
|
||||
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
|
||||
'env1'))
|
||||
self.create_environment('env2')
|
||||
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
|
||||
'env1'))
|
||||
self.go_to_submenu('Applications')
|
||||
self.driver.find_element_by_link_text('Environment').click()
|
||||
self.driver.find_element_by_link_text('env2').click()
|
||||
self.driver.find_element_by_id('MuranoDefaultEnvPanelToggle').click()
|
||||
self.driver.find_element_by_id('environment_switcher').click()
|
||||
self.driver.find_element_by_xpath(
|
||||
".//*[@id='environment_list']/li[2]/a").click()
|
||||
|
||||
self.select_and_click_action_for_app('add', 'PostgreSQL')
|
||||
self.create_iis_service('IISService')
|
||||
self.create_linux_telnet('linuxtelnet', app_id)
|
||||
|
||||
self.go_to_submenu('Environments')
|
||||
self.env_to_components_list('env2')
|
||||
self.env_to_components_list('env1')
|
||||
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
|
||||
'PostgreSQL'))
|
||||
'linuxtelnet'))
|
||||
|
||||
def test_039_check_statistics_panel(self):
|
||||
"""
|
||||
|
Loading…
Reference in New Issue
Block a user