summaryrefslogtreecommitdiff
path: root/devstack/lib/heat
diff options
context:
space:
mode:
Diffstat (limited to 'devstack/lib/heat')
-rw-r--r--devstack/lib/heat78
1 files changed, 58 insertions, 20 deletions
diff --git a/devstack/lib/heat b/devstack/lib/heat
index 82e88e6c3..5993d7de2 100644
--- a/devstack/lib/heat
+++ b/devstack/lib/heat
@@ -31,10 +31,6 @@ set +o xtrace
# set up default directories
GITDIR["python-heatclient"]=$DEST/python-heatclient
-# heat service
-HEAT_REPO=${HEAT_REPO:-${GIT_BASE}/openstack/heat.git}
-HEAT_BRANCH=${HEAT_BRANCH:-master}
-
# python heat client library
GITREPO["python-heatclient"]=${HEATCLIENT_REPO:-${GIT_BASE}/openstack/python-heatclient.git}
GITBRANCH["python-heatclient"]=${HEATCLIENT_BRANCH:-master}
@@ -51,7 +47,7 @@ HEAT_CONF_DIR=/etc/heat
HEAT_CONF=$HEAT_CONF_DIR/heat.conf
HEAT_ENV_DIR=$HEAT_CONF_DIR/environment.d
HEAT_TEMPLATES_DIR=$HEAT_CONF_DIR/templates
-HEAT_API_HOST=${HEAT_API_HOST:-$HOST_IP}
+HEAT_API_HOST=${HEAT_API_HOST:-$SERVICE_HOST}
HEAT_API_PORT=${HEAT_API_PORT:-8004}
HEAT_SERVICE_USER=${HEAT_SERVICE_USER:-heat}
HEAT_TRUSTEE_USER=${HEAT_TRUSTEE_USER:-$HEAT_SERVICE_USER}
@@ -82,6 +78,7 @@ else
fi
HEAT_PLUGIN_DIR=${HEAT_PLUGIN_DIR:-$DATA_DIR/heat/plugins}
ENABLE_HEAT_PLUGINS=${ENABLE_HEAT_PLUGINS:-}
+HEAT_ENGINE_WORKERS=${HEAT_ENGINE_WORKERS:=$(( ($(nproc)/4)<2 ? 2 : ($(nproc)/4) ))}
# Functions
# ---------
@@ -111,7 +108,7 @@ function configure_heat {
# remove old config files
rm -f $HEAT_CONF_DIR/heat-*.conf
- HEAT_API_CFN_HOST=${HEAT_API_CFN_HOST:-$HOST_IP}
+ HEAT_API_CFN_HOST=${HEAT_API_CFN_HOST:-$SERVICE_HOST}
HEAT_API_CFN_PORT=${HEAT_API_CFN_PORT:-8000}
HEAT_ENGINE_HOST=${HEAT_ENGINE_HOST:-$SERVICE_HOST}
HEAT_ENGINE_PORT=${HEAT_ENGINE_PORT:-8001}
@@ -139,6 +136,9 @@ function configure_heat {
# logging
iniset $HEAT_CONF DEFAULT debug $ENABLE_DEBUG_LOG_LEVEL
+ # reduce Heat engine workers
+ iniset $HEAT_CONF DEFAULT num_engine_workers "$HEAT_ENGINE_WORKERS"
+
local no_format="False"
if [[ "$HEAT_USE_APACHE" == "True" && "$WSGI_MODE" != "uwsgi" ]]; then
no_format="True"
@@ -276,7 +276,6 @@ function install_heatclient {
# install_heat() - Collect source and prepare
function install_heat {
- git_clone $HEAT_REPO $HEAT_DIR $HEAT_BRANCH
setup_develop $HEAT_DIR
if [[ "$HEAT_USE_APACHE" == "True" ]]; then
if [ "$WSGI_MODE" == "uwsgi" ]; then
@@ -299,10 +298,6 @@ function start_heat {
enable_apache_site heat-api
enable_apache_site heat-api-cfn
restart_apache_server
- tail_log heat-api /var/log/$APACHE_NAME/heat_api.log
- tail_log heat-api-access /var/log/$APACHE_NAME/heat_api_access.log
- tail_log heat-api-cfn /var/log/$APACHE_NAME/heat_api_cfn.log
- tail_log heat-api-cfn-access /var/log/$APACHE_NAME/heat_api_cfn_access.log
else
run_process h-api "$HEAT_BIN_DIR/uwsgi --ini $HEAT_API_UWSGI_CONF" ""
run_process h-api-cfn "$HEAT_BIN_DIR/uwsgi --ini $HEAT_CFN_API_UWSGI_CONF" ""
@@ -419,13 +414,13 @@ function create_heat_accounts {
get_or_create_endpoint \
"orchestration" \
"$REGION_NAME" \
- "$heat_api_service_url" "$heat_api_service_url" "$heat_api_service_url"
+ "$heat_api_service_url"
get_or_create_service "heat-cfn" "cloudformation" "Heat CloudFormation Service"
get_or_create_endpoint \
"cloudformation" \
"$REGION_NAME" \
- "$heat_cfn_api_service_url" "$heat_cfn_api_service_url" "$heat_cfn_api_service_url"
+ "$heat_cfn_api_service_url"
# heat_stack_user role is for users created by Heat
get_or_create_role "heat_stack_user"
@@ -446,15 +441,58 @@ function create_heat_accounts {
# NOTE (gmann): Configure all the Tempest setting for Heat service in
# this function.
function configure_tempest_for_heat {
- if is_service_enabled tempest; then
- iniset $TEMPEST_CONFIG service_available heat True
+ # Skip SoftwareConfigIntegrationTest because it requires a custom image
+ # Skip AutoscalingLoadBalancerTest and AutoscalingLoadBalancerv2Test as deprecated neutron-lbaas service is not enabled
+ # Skip CfnInitIntegrationTest as latest fedora images don't have heat-cfntools
+ iniset $TEMPEST_CONFIG heat_plugin skip_scenario_test_list 'AutoscalingLoadBalancerTest, AutoscalingLoadBalancerv2Test, \
+ SoftwareConfigIntegrationTest, AodhAlarmTest, CfnInitIntegrationTest'
+ # Skip LoadBalancerv2Test as deprecated neutron-lbaas service is not enabled
+ iniset $TEMPEST_CONFIG heat_plugin skip_functional_test_list 'LoadBalancerv2Test, NotificationTest'
+
+ openstack flavor show m1.heat_int || openstack flavor create m1.heat_int --ram 512 --disk 4
+ openstack flavor show m1.heat_micro || openstack flavor create m1.heat_micro --ram 128 --disk 1
+
+ source $TOP_DIR/openrc demo demo
+ openstack network show heat-net || openstack network create heat-net
+ openstack subnet show heat-subnet || openstack subnet create heat-subnet --network heat-net --subnet-range 10.0.5.0/24
+ openstack router add subnet router1 heat-subnet
+
+ iniset $TEMPEST_CONFIG heat_plugin username $OS_USERNAME
+ iniset $TEMPEST_CONFIG heat_plugin password $OS_PASSWORD
+ iniset $TEMPEST_CONFIG heat_plugin project_name $OS_PROJECT_NAME
+ iniset $TEMPEST_CONFIG heat_plugin auth_url $OS_AUTH_URL
+ iniset $TEMPEST_CONFIG heat_plugin user_domain_id $OS_USER_DOMAIN_ID
+ iniset $TEMPEST_CONFIG heat_plugin project_domain_id $OS_PROJECT_DOMAIN_ID
+ iniset $TEMPEST_CONFIG heat_plugin user_domain_name $OS_USER_DOMAIN_NAME
+ iniset $TEMPEST_CONFIG heat_plugin project_domain_name $OS_PROJECT_DOMAIN_NAME
+ iniset $TEMPEST_CONFIG heat_plugin region $OS_REGION_NAME
+ iniset $TEMPEST_CONFIG heat_plugin auth_version $OS_IDENTITY_API_VERSION
+
+ source $TOP_DIR/openrc admin admin
+ iniset $TEMPEST_CONFIG heat_plugin admin_username $OS_USERNAME
+ iniset $TEMPEST_CONFIG heat_plugin admin_password $OS_PASSWORD
+ if [[ -e /etc/ci/mirror_info.sh ]]; then
+ source /etc/ci/mirror_info.sh
+ fi
+ export HEAT_TEST_FEDORA_IMAGE=${NODEPOOL_FEDORA_MIRROR:-https://download.fedoraproject.org/pub/fedora/linux}/releases/33/Cloud/x86_64/images/Fedora-Cloud-Base-33-1.2.x86_64.qcow2
+ TOKEN=$(openstack token issue -c id -f value)
+ local image_exists=$( openstack image list | grep "Fedora-Cloud-Base-33-1.2.x86_64" )
+ if [[ -z $image_exists ]]; then
+ if is_service_enabled g-api; then
+ upload_image $HEAT_TEST_FEDORA_IMAGE $TOKEN
+ fi
fi
+
+ if is_service_enabled tls-proxy; then
+ iniset $TEMPEST_CONFIG heat_plugin ca_file $SSL_BUNDLE_FILE
+ fi
+ # add application credential and secret to support test multi-cloud
+ app_cred_id=$(openstack application credential show heat_multicloud || openstack application credential create heat_multicloud \
+ --secret secret --unrestricted -c id -f value)
+ export OS_CREDENTIAL_SECRET_ID=$(openstack secret store -n heat-multi-cloud-test-cred --payload \
+ '{"auth_type": "v3applicationcredential", "auth": {"auth_url": $OS_AUTH_URL, "application_credential_id": $app_cred_id, "application_credential_secret": "secret"}}'\
+ -c "Secret href" -f value)
}
# Restore xtrace
$_XTRACE_HEAT
-
-# Tell emacs to use shell-script-mode
-## Local variables:
-## mode: shell-script
-## End: