From 7d1ec430046256ac3f536f4920a43936e28ef0c4 Mon Sep 17 00:00:00 2001 From: Sean Dague Date: Fri, 22 Apr 2016 09:19:10 -0400 Subject: [PATCH] Don't check for existing endpoints We really should only have code that create endpoints once, making all osc calls get_or_set adds 3 seconds per call for no really good reason. This also stops creating the internal endpoints in the service catalog. It's a pattern that we're trying not to propogate, so lets not have it in devstack any more. Change-Id: Ia8cefe43753900d62117beae330db46deb6a9fc9 --- functions-common | 35 ++++++++++++++++------------------- lib/cinder | 6 +++--- lib/glance | 4 ++-- lib/heat | 4 ++-- lib/neutron-legacy | 2 +- lib/nova | 6 +++--- lib/swift | 2 +- 7 files changed, 28 insertions(+), 31 deletions(-) diff --git a/functions-common b/functions-common index e44fea112d..7f670716bd 100644 --- a/functions-common +++ b/functions-common @@ -987,38 +987,35 @@ function get_or_create_service { } # Create an endpoint with a specific interface -# Usage: _get_or_create_endpoint_with_interface -function _get_or_create_endpoint_with_interface { +# Usage: _create_endpoint_with_interface +function _create_endpoint_with_interface { + # Creates new endpoint local endpoint_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 - + endpoint_id=$(openstack endpoint create \ + $1 $2 $3 --region $4 -f value -c id) echo $endpoint_id } -# Gets or creates endpoint -# Usage: get_or_create_endpoint +# 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 +function 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 3 endpoints and return the id of the public one. In reality + # create 2 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=$(_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 + public_id=$(_create_endpoint_with_interface $1 public $3 $2) + _create_endpoint_with_interface $1 admin $4 $2 # return the public id to indicate success, and this is the endpoint most likely wanted echo $public_id diff --git a/lib/cinder b/lib/cinder index 607a6f83c6..037456adef 100644 --- a/lib/cinder +++ b/lib/cinder @@ -372,7 +372,7 @@ function create_cinder_accounts { create_service_user "cinder" get_or_create_service "cinder" "volume" "Cinder Volume Service" - get_or_create_endpoint \ + 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" - get_or_create_endpoint \ + 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" - get_or_create_endpoint \ + create_endpoint \ "volumev3" \ "$REGION_NAME" \ "$CINDER_SERVICE_PROTOCOL://$CINDER_SERVICE_HOST:$CINDER_SERVICE_PORT/v3/\$(project_id)s" \ diff --git a/lib/glance b/lib/glance index f2a6db6edc..5d532eac5e 100644 --- a/lib/glance +++ b/lib/glance @@ -292,7 +292,7 @@ function create_glance_accounts { fi get_or_create_service "glance" "image" "Glance Image Service" - get_or_create_endpoint \ + 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" - get_or_create_endpoint "artifact" \ + create_endpoint "artifact" \ "$REGION_NAME" \ "$GLANCE_SERVICE_PROTOCOL://$GLANCE_GLARE_HOSTPORT" \ "$GLANCE_SERVICE_PROTOCOL://$GLANCE_GLARE_HOSTPORT" \ diff --git a/lib/heat b/lib/heat index 4326321bd1..6a654b5ade 100644 --- a/lib/heat +++ b/lib/heat @@ -388,7 +388,7 @@ function create_heat_accounts { create_service_user "heat" "admin" get_or_create_service "heat" "orchestration" "Heat Orchestration Service" - get_or_create_endpoint \ + 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" - get_or_create_endpoint \ + create_endpoint \ "cloudformation" \ "$REGION_NAME" \ "$SERVICE_PROTOCOL://$HEAT_API_CFN_HOST:$HEAT_API_CFN_PORT/v1" \ diff --git a/lib/neutron-legacy b/lib/neutron-legacy index f0592e2f37..9da6a26e7b 100644 --- a/lib/neutron-legacy +++ b/lib/neutron-legacy @@ -534,7 +534,7 @@ function create_neutron_accounts { create_service_user "neutron" get_or_create_service "neutron" "network" "Neutron Service" - get_or_create_endpoint \ + create_endpoint \ "network" \ "$REGION_NAME" \ "$Q_PROTOCOL://$SERVICE_HOST:$Q_PORT/" \ diff --git a/lib/nova b/lib/nova index 818ecc4f1b..33dbc428ee 100644 --- a/lib/nova +++ b/lib/nova @@ -418,7 +418,7 @@ function create_nova_accounts { fi get_or_create_service "nova_legacy" "compute_legacy" "Nova Compute Service (Legacy 2.0)" - get_or_create_endpoint \ + 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" - get_or_create_endpoint \ + 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" - get_or_create_endpoint \ + create_endpoint \ "s3" \ "$REGION_NAME" \ "http://$SERVICE_HOST:$S3_SERVICE_PORT" \ diff --git a/lib/swift b/lib/swift index 8cb94efa66..b74b4da840 100644 --- a/lib/swift +++ b/lib/swift @@ -633,7 +633,7 @@ function create_swift_accounts { create_service_user "swift" "admin" get_or_create_service "swift" "object-store" "Swift Service" - get_or_create_endpoint \ + create_endpoint \ "object-store" \ "$REGION_NAME" \ "$SWIFT_SERVICE_PROTOCOL://$SERVICE_HOST:$SWIFT_DEFAULT_BIND_PORT/v1/AUTH_\$(project_id)s" \