diff options
Diffstat (limited to 'devstack/lib/heat')
-rw-r--r-- | devstack/lib/heat | 78 |
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: |