This is a REST API in the same style as other OpenStack APIs.
This also creates a new endpoint for the REST API which uses the
serivce type 'orchestration'. The old endpoint now has the service
type 'cloudformation'.
This matches the pattern where the native openstack API gets a
generic service type while the emulated EC2 API gets a specific
type (eg, object-store, s3).
There will be breakage for the time period where only one of this
change and https://review.openstack.org/#/c/14263/ are approved,
since keystone will have the incorrect service type for that period.
Change-Id: I6a0d51a63da8017d375b4c065c4c9079dfca8fe3
... | ... |
@@ -166,15 +166,25 @@ if [[ "$ENABLED_SERVICES" =~ "heat" ]]; then |
166 | 166 |
--role_id $ADMIN_ROLE |
167 | 167 |
if [[ "$KEYSTONE_CATALOG_BACKEND" = 'sql' ]]; then |
168 | 168 |
HEAT_CFN_SERVICE=$(get_id keystone service-create \ |
169 |
- --name=heat \ |
|
170 |
- --type=orchestration \ |
|
171 |
- --description="Heat Service") |
|
169 |
+ --name=heat-cfn \ |
|
170 |
+ --type=cloudformation \ |
|
171 |
+ --description="Heat CloudFormation Service") |
|
172 | 172 |
keystone endpoint-create \ |
173 | 173 |
--region RegionOne \ |
174 | 174 |
--service_id $HEAT_CFN_SERVICE \ |
175 | 175 |
--publicurl "http://$SERVICE_HOST:$HEAT_API_CFN_PORT/v1" \ |
176 | 176 |
--adminurl "http://$SERVICE_HOST:$HEAT_API_CFN_PORT/v1" \ |
177 | 177 |
--internalurl "http://$SERVICE_HOST:$HEAT_API_CFN_PORT/v1" |
178 |
+ HEAT_SERVICE=$(get_id keystone service-create \ |
|
179 |
+ --name=heat \ |
|
180 |
+ --type=orchestration \ |
|
181 |
+ --description="Heat Service") |
|
182 |
+ keystone endpoint-create \ |
|
183 |
+ --region RegionOne \ |
|
184 |
+ --service_id $HEAT_SERVICE \ |
|
185 |
+ --publicurl "http://$SERVICE_HOST:$HEAT_API_PORT/v1/\$(tenant_id)s" \ |
|
186 |
+ --adminurl "http://$SERVICE_HOST:$HEAT_API_PORT/v1/\$(tenant_id)s" \ |
|
187 |
+ --internalurl "http://$SERVICE_HOST:$HEAT_API_PORT/v1/\$(tenant_id)s" |
|
178 | 188 |
fi |
179 | 189 |
fi |
180 | 190 |
|
... | ... |
@@ -51,6 +51,8 @@ function configure_heat() { |
51 | 51 |
HEAT_METADATA_PORT=${HEAT_METADATA_PORT:-8002} |
52 | 52 |
HEAT_API_CW_HOST=${HEAT_API_CW_HOST:-$SERVICE_HOST} |
53 | 53 |
HEAT_API_CW_PORT=${HEAT_API_CW_PORT:-8003} |
54 |
+ HEAT_API_HOST=${HEAT_API_HOST:-$SERVICE_HOST} |
|
55 |
+ HEAT_API_PORT=${HEAT_API_PORT:-8004} |
|
54 | 56 |
|
55 | 57 |
# cloudformation api |
56 | 58 |
HEAT_API_CFN_CONF=$HEAT_CONF_DIR/heat-api-cfn.conf |
... | ... |
@@ -81,6 +83,35 @@ function configure_heat() { |
81 | 81 |
iniset $HEAT_API_CFN_PASTE_INI filter:ec2authtoken auth_uri $KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_SERVICE_HOST:$KEYSTONE_SERVICE_PORT/v2.0 |
82 | 82 |
iniset $HEAT_API_CFN_PASTE_INI filter:ec2authtoken keystone_ec2_uri $KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_SERVICE_HOST:$KEYSTONE_SERVICE_PORT/v2.0/ec2tokens |
83 | 83 |
|
84 |
+ # openstack api |
|
85 |
+ HEAT_API_CONF=$HEAT_CONF_DIR/heat-api.conf |
|
86 |
+ cp $HEAT_DIR/etc/heat/heat-api.conf $HEAT_API_CONF |
|
87 |
+ iniset $HEAT_API_CONF DEFAULT debug True |
|
88 |
+ inicomment $HEAT_API_CONF DEFAULT log_file |
|
89 |
+ iniset $HEAT_API_CONF DEFAULT use_syslog $SYSLOG |
|
90 |
+ iniset $HEAT_API_CONF DEFAULT bind_host $HEAT_API_HOST |
|
91 |
+ iniset $HEAT_API_CONF DEFAULT bind_port $HEAT_API_PORT |
|
92 |
+ |
|
93 |
+ if is_service_enabled rabbit; then |
|
94 |
+ iniset $HEAT_API_CONF DEFAULT rpc_backend heat.openstack.common.rpc.impl_kombu |
|
95 |
+ iniset $HEAT_API_CONF DEFAULT rabbit_password $RABBIT_PASSWORD |
|
96 |
+ iniset $HEAT_API_CONF DEFAULT rabbit_host $RABBIT_HOST |
|
97 |
+ elif is_service_enabled qpid; then |
|
98 |
+ iniset $HEAT_API_CONF DEFAULT rpc_backend heat.openstack.common.rpc.impl_qpid |
|
99 |
+ fi |
|
100 |
+ |
|
101 |
+ HEAT_API_PASTE_INI=$HEAT_CONF_DIR/heat-api-paste.ini |
|
102 |
+ cp $HEAT_DIR/etc/heat/heat-api-paste.ini $HEAT_API_PASTE_INI |
|
103 |
+ iniset $HEAT_API_PASTE_INI filter:authtoken auth_host $KEYSTONE_AUTH_HOST |
|
104 |
+ iniset $HEAT_API_PASTE_INI filter:authtoken auth_port $KEYSTONE_AUTH_PORT |
|
105 |
+ iniset $HEAT_API_PASTE_INI filter:authtoken auth_protocol $KEYSTONE_AUTH_PROTOCOL |
|
106 |
+ iniset $HEAT_API_PASTE_INI filter:authtoken auth_uri $KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_SERVICE_HOST:$KEYSTONE_SERVICE_PORT/v2.0 |
|
107 |
+ iniset $HEAT_API_PASTE_INI filter:authtoken admin_tenant_name $SERVICE_TENANT_NAME |
|
108 |
+ iniset $HEAT_API_PASTE_INI filter:authtoken admin_user heat |
|
109 |
+ iniset $HEAT_API_PASTE_INI filter:authtoken admin_password $SERVICE_PASSWORD |
|
110 |
+ iniset $HEAT_API_PASTE_INI filter:ec2authtoken auth_uri $KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_SERVICE_HOST:$KEYSTONE_SERVICE_PORT/v2.0 |
|
111 |
+ iniset $HEAT_API_PASTE_INI filter:ec2authtoken keystone_ec2_uri $KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_SERVICE_HOST:$KEYSTONE_SERVICE_PORT/v2.0/ec2tokens |
|
112 |
+ |
|
84 | 113 |
# engine |
85 | 114 |
HEAT_ENGINE_CONF=$HEAT_CONF_DIR/heat-engine.conf |
86 | 115 |
cp $HEAT_DIR/etc/heat/heat-engine.conf $HEAT_ENGINE_CONF |
... | ... |
@@ -168,6 +199,7 @@ function install_heat() { |
168 | 168 |
# start_heat() - Start running processes, including screen |
169 | 169 |
function start_heat() { |
170 | 170 |
screen_it h-eng "cd $HEAT_DIR; bin/heat-engine --config-file=$HEAT_CONF_DIR/heat-engine.conf" |
171 |
+ screen_it h-api "cd $HEAT_DIR; bin/heat-api --config-dir=$HEAT_CONF_DIR/heat-api.conf" |
|
171 | 172 |
screen_it h-api-cfn "cd $HEAT_DIR; bin/heat-api-cfn --config-dir=$HEAT_CONF_DIR/heat-api-cfn.conf" |
172 | 173 |
screen_it h-api-cw "cd $HEAT_DIR; bin/heat-api-cloudwatch --config-dir=$HEAT_CONF_DIR/heat-api-cloudwatch.conf" |
173 | 174 |
screen_it h-meta "cd $HEAT_DIR; bin/heat-metadata --config-dir=$HEAT_CONF_DIR/heat-metadata.conf" |
... | ... |
@@ -1050,6 +1050,7 @@ if is_service_enabled key; then |
1050 | 1050 |
SERVICE_TOKEN=$SERVICE_TOKEN SERVICE_ENDPOINT=$SERVICE_ENDPOINT SERVICE_HOST=$SERVICE_HOST \ |
1051 | 1051 |
S3_SERVICE_PORT=$S3_SERVICE_PORT KEYSTONE_CATALOG_BACKEND=$KEYSTONE_CATALOG_BACKEND \ |
1052 | 1052 |
DEVSTACK_DIR=$TOP_DIR ENABLED_SERVICES=$ENABLED_SERVICES HEAT_API_CFN_PORT=$HEAT_API_CFN_PORT \ |
1053 |
+ HEAT_API_PORT=$HEAT_API_PORT \ |
|
1053 | 1054 |
bash -x $FILES/keystone_data.sh |
1054 | 1055 |
|
1055 | 1056 |
# Set up auth creds now that keystone is bootstrapped |