Revert "Don't check for existing endpoints"

This reverts commit 7d1ec43004.

This broke the sahara and layer4 dsvm jobs. The layer4 job
is voting on tempest changes so tempest is also broken.

Change-Id: Ide69f10cd85bf7ff0d86bc8cba56dedd26850362
Partial-Bug: #1573868
This commit is contained in:
Matt Riedemann 2016-04-23 01:45:40 +00:00
parent 7d1ec43004
commit ae4578bed9
7 changed files with 31 additions and 28 deletions

View File

@ -987,35 +987,38 @@ function get_or_create_service {
}
# Create an endpoint with a specific interface
# Usage: _create_endpoint_with_interface <service> <interface> <url> <region>
function _create_endpoint_with_interface {
# Creates new endpoint
# Usage: _get_or_create_endpoint_with_interface <service> <interface> <url> <region>
function _get_or_create_endpoint_with_interface {
local endpoint_id
endpoint_id=$(openstack endpoint create \
$1 $2 $3 --region $4 -f value -c id)
endpoint_id=$(openstack endpoint list \
--service $1 \
--interface $2 \
--region $4 \
-c ID -f value)
if [[ -z "$endpoint_id" ]]; then
# Creates new endpoint
endpoint_id=$(openstack endpoint create \
$1 $2 $3 --region $4 -f value -c id)
fi
echo $endpoint_id
}
# TODO(sdague): remove in O
function get_or_create_endpoint {
deprecated "get_or_create_endpoint is deprecated. Use create_endpoint instead"
create_endpoint $@
}
# Gets or creates endpoint
# Usage: create_endpoint <service> <region> <publicurl> <adminurl>
function create_endpoint {
# Usage: get_or_create_endpoint <service> <region> <publicurl> <adminurl> <internalurl>
function get_or_create_endpoint {
# NOTE(jamielennnox): when converting to v3 endpoint creation we go from
# creating one endpoint with multiple urls to multiple endpoints each with
# a different interface. To maintain the existing function interface we
# create 2 endpoints and return the id of the public one. In reality
# create 3 endpoints and return the id of the public one. In reality
# returning the public id will not make a lot of difference as there are no
# scenarios currently that use the returned id. Ideally this behaviour
# should be pushed out to the service setups and let them create the
# endpoints they need.
local public_id
public_id=$(_create_endpoint_with_interface $1 public $3 $2)
_create_endpoint_with_interface $1 admin $4 $2
public_id=$(_get_or_create_endpoint_with_interface $1 public $3 $2)
_get_or_create_endpoint_with_interface $1 admin $4 $2
_get_or_create_endpoint_with_interface $1 internal $5 $2
# return the public id to indicate success, and this is the endpoint most likely wanted
echo $public_id

View File

@ -372,7 +372,7 @@ function create_cinder_accounts {
create_service_user "cinder"
get_or_create_service "cinder" "volume" "Cinder Volume Service"
create_endpoint \
get_or_create_endpoint \
"volume" \
"$REGION_NAME" \
"$CINDER_SERVICE_PROTOCOL://$CINDER_SERVICE_HOST:$CINDER_SERVICE_PORT/v1/\$(project_id)s" \
@ -380,7 +380,7 @@ function create_cinder_accounts {
"$CINDER_SERVICE_PROTOCOL://$CINDER_SERVICE_HOST:$CINDER_SERVICE_PORT/v1/\$(project_id)s"
get_or_create_service "cinderv2" "volumev2" "Cinder Volume Service V2"
create_endpoint \
get_or_create_endpoint \
"volumev2" \
"$REGION_NAME" \
"$CINDER_SERVICE_PROTOCOL://$CINDER_SERVICE_HOST:$CINDER_SERVICE_PORT/v2/\$(project_id)s" \
@ -388,7 +388,7 @@ function create_cinder_accounts {
"$CINDER_SERVICE_PROTOCOL://$CINDER_SERVICE_HOST:$CINDER_SERVICE_PORT/v2/\$(project_id)s"
get_or_create_service "cinderv3" "volumev3" "Cinder Volume Service V3"
create_endpoint \
get_or_create_endpoint \
"volumev3" \
"$REGION_NAME" \
"$CINDER_SERVICE_PROTOCOL://$CINDER_SERVICE_HOST:$CINDER_SERVICE_PORT/v3/\$(project_id)s" \

View File

@ -292,7 +292,7 @@ function create_glance_accounts {
fi
get_or_create_service "glance" "image" "Glance Image Service"
create_endpoint \
get_or_create_endpoint \
"image" \
"$REGION_NAME" \
"$GLANCE_SERVICE_PROTOCOL://$GLANCE_HOSTPORT" \
@ -305,7 +305,7 @@ function create_glance_accounts {
create_service_user "glare"
get_or_create_service "glare" "artifact" "Glance Artifact Service"
create_endpoint "artifact" \
get_or_create_endpoint "artifact" \
"$REGION_NAME" \
"$GLANCE_SERVICE_PROTOCOL://$GLANCE_GLARE_HOSTPORT" \
"$GLANCE_SERVICE_PROTOCOL://$GLANCE_GLARE_HOSTPORT" \

View File

@ -388,7 +388,7 @@ function create_heat_accounts {
create_service_user "heat" "admin"
get_or_create_service "heat" "orchestration" "Heat Orchestration Service"
create_endpoint \
get_or_create_endpoint \
"orchestration" \
"$REGION_NAME" \
"$SERVICE_PROTOCOL://$HEAT_API_HOST:$HEAT_API_PORT/v1/\$(project_id)s" \
@ -396,7 +396,7 @@ function create_heat_accounts {
"$SERVICE_PROTOCOL://$HEAT_API_HOST:$HEAT_API_PORT/v1/\$(project_id)s"
get_or_create_service "heat-cfn" "cloudformation" "Heat CloudFormation Service"
create_endpoint \
get_or_create_endpoint \
"cloudformation" \
"$REGION_NAME" \
"$SERVICE_PROTOCOL://$HEAT_API_CFN_HOST:$HEAT_API_CFN_PORT/v1" \

View File

@ -534,7 +534,7 @@ function create_neutron_accounts {
create_service_user "neutron"
get_or_create_service "neutron" "network" "Neutron Service"
create_endpoint \
get_or_create_endpoint \
"network" \
"$REGION_NAME" \
"$Q_PROTOCOL://$SERVICE_HOST:$Q_PORT/" \

View File

@ -418,7 +418,7 @@ function create_nova_accounts {
fi
get_or_create_service "nova_legacy" "compute_legacy" "Nova Compute Service (Legacy 2.0)"
create_endpoint \
get_or_create_endpoint \
"compute_legacy" \
"$REGION_NAME" \
"$nova_api_url/v2/\$(project_id)s" \
@ -426,7 +426,7 @@ function create_nova_accounts {
"$nova_api_url/v2/\$(project_id)s"
get_or_create_service "nova" "compute" "Nova Compute Service"
create_endpoint \
get_or_create_endpoint \
"compute" \
"$REGION_NAME" \
"$nova_api_url/v2.1" \
@ -446,7 +446,7 @@ function create_nova_accounts {
# S3
if is_service_enabled swift3; then
get_or_create_service "s3" "s3" "S3"
create_endpoint \
get_or_create_endpoint \
"s3" \
"$REGION_NAME" \
"http://$SERVICE_HOST:$S3_SERVICE_PORT" \

View File

@ -633,7 +633,7 @@ function create_swift_accounts {
create_service_user "swift" "admin"
get_or_create_service "swift" "object-store" "Swift Service"
create_endpoint \
get_or_create_endpoint \
"object-store" \
"$REGION_NAME" \
"$SWIFT_SERVICE_PROTOCOL://$SERVICE_HOST:$SWIFT_DEFAULT_BIND_PORT/v1/AUTH_\$(project_id)s" \