...
|
...
|
@@ -49,8 +49,10 @@ GLANCE_CONF_DIR=${GLANCE_CONF_DIR:-/etc/glance}
|
49
|
49
|
GLANCE_METADEF_DIR=$GLANCE_CONF_DIR/metadefs
|
50
|
50
|
GLANCE_REGISTRY_CONF=$GLANCE_CONF_DIR/glance-registry.conf
|
51
|
51
|
GLANCE_API_CONF=$GLANCE_CONF_DIR/glance-api.conf
|
|
52
|
+GLANCE_SEARCH_CONF=$GLANCE_CONF_DIR/glance-search.conf
|
52
|
53
|
GLANCE_REGISTRY_PASTE_INI=$GLANCE_CONF_DIR/glance-registry-paste.ini
|
53
|
54
|
GLANCE_API_PASTE_INI=$GLANCE_CONF_DIR/glance-api-paste.ini
|
|
55
|
+GLANCE_SEARCH_PASTE_INI=$GLANCE_CONF_DIR/glance-search-paste.ini
|
54
|
56
|
GLANCE_CACHE_CONF=$GLANCE_CONF_DIR/glance-cache.conf
|
55
|
57
|
GLANCE_POLICY_JSON=$GLANCE_CONF_DIR/policy.json
|
56
|
58
|
GLANCE_SCHEMA_JSON=$GLANCE_CONF_DIR/schema-image.json
|
...
|
...
|
@@ -67,6 +69,9 @@ GLANCE_HOSTPORT=${GLANCE_HOSTPORT:-$GLANCE_SERVICE_HOST:$GLANCE_SERVICE_PORT}
|
67
|
67
|
GLANCE_SERVICE_PROTOCOL=${GLANCE_SERVICE_PROTOCOL:-$SERVICE_PROTOCOL}
|
68
|
68
|
GLANCE_REGISTRY_PORT=${GLANCE_REGISTRY_PORT:-9191}
|
69
|
69
|
GLANCE_REGISTRY_PORT_INT=${GLANCE_REGISTRY_PORT_INT:-19191}
|
|
70
|
+GLANCE_SEARCH_PORT=${GLANCE_SEARCH_PORT:-9393}
|
|
71
|
+GLANCE_SEARCH_PORT_INT=${GLANCE_SEARCH_PORT_INT:-19393}
|
|
72
|
+GLANCE_SEARCH_HOSTPORT=${GLANCE_SEARCH_HOSTPORT:-$GLANCE_SERVICE_HOST:$GLANCE_SEARCH_PORT}
|
70
|
73
|
|
71
|
74
|
# Tell Tempest this project is present
|
72
|
75
|
TEMPEST_SERVICES+=,glance
|
...
|
...
|
@@ -87,6 +92,10 @@ function cleanup_glance {
|
87
|
87
|
# kill instances (nova)
|
88
|
88
|
# delete image files (glance)
|
89
|
89
|
sudo rm -rf $GLANCE_CACHE_DIR $GLANCE_IMAGE_DIR $GLANCE_AUTH_CACHE_DIR
|
|
90
|
+
|
|
91
|
+ if is_service_enabled g-search; then
|
|
92
|
+ ${TOP_DIR}/pkg/elasticsearch.sh stop
|
|
93
|
+ fi
|
90
|
94
|
}
|
91
|
95
|
|
92
|
96
|
# configure_glance() - Set config files, create data dirs, etc
|
...
|
...
|
@@ -218,14 +227,38 @@ function configure_glance {
|
218
|
218
|
iniset $GLANCE_API_CONF DEFAULT cinder_endpoint_template "https://$CINDER_SERVICE_HOST:$CINDER_SERVICE_PORT/v1/%(project_id)s"
|
219
|
219
|
iniset $GLANCE_CACHE_CONF DEFAULT cinder_endpoint_template "https://$CINDER_SERVICE_HOST:$CINDER_SERVICE_PORT/v1/%(project_id)s"
|
220
|
220
|
fi
|
|
221
|
+
|
|
222
|
+ # Configure search
|
|
223
|
+ if is_service_enabled g-search; then
|
|
224
|
+ cp $GLANCE_DIR/etc/glance-search.conf $GLANCE_SEARCH_CONF
|
|
225
|
+ iniset $GLANCE_SEARCH_CONF DEFAULT debug $ENABLE_DEBUG_LOG_LEVEL
|
|
226
|
+ inicomment $GLANCE_SEARCH_CONF DEFAULT log_file
|
|
227
|
+ iniset $GLANCE_SEARCH_CONF DEFAULT use_syslog $SYSLOG
|
|
228
|
+ iniset $GLANCE_SEARCH_CONF DEFAULT sql_connection $dburl
|
|
229
|
+ iniset $GLANCE_SEARCH_CONF paste_deploy flavor keystone
|
|
230
|
+ configure_auth_token_middleware $GLANCE_SEARCH_CONF glance $GLANCE_AUTH_CACHE_DIR/search
|
|
231
|
+
|
|
232
|
+ if is_service_enabled tls-proxy; then
|
|
233
|
+ iniset $GLANCE_SEARCH_CONF DEFAULT bind_port $GLANCE_SEARCH_PORT_INT
|
|
234
|
+ fi
|
|
235
|
+ # Register SSL certificates if provided
|
|
236
|
+ if is_ssl_enabled_service glance; then
|
|
237
|
+ ensure_certificates GLANCE
|
|
238
|
+ iniset $GLANCE_SEARCH_CONF DEFAULT cert_file "$GLANCE_SSL_CERT"
|
|
239
|
+ iniset $GLANCE_SEARCH_CONF DEFAULT key_file "$GLANCE_SSL_KEY"
|
|
240
|
+ fi
|
|
241
|
+
|
|
242
|
+ cp $GLANCE_DIR/etc/glance-search-paste.ini $GLANCE_SEARCH_PASTE_INI
|
|
243
|
+ fi
|
221
|
244
|
}
|
222
|
245
|
|
223
|
246
|
# create_glance_accounts() - Set up common required glance accounts
|
224
|
247
|
|
225
|
|
-# Project User Roles
|
226
|
|
-# ------------------------------------------------------------------
|
227
|
|
-# SERVICE_TENANT_NAME glance service
|
228
|
|
-# SERVICE_TENANT_NAME glance-swift ResellerAdmin (if Swift is enabled)
|
|
248
|
+# Project User Roles
|
|
249
|
+# ---------------------------------------------------------------------
|
|
250
|
+# SERVICE_TENANT_NAME glance service
|
|
251
|
+# SERVICE_TENANT_NAME glance-swift ResellerAdmin (if Swift is enabled)
|
|
252
|
+# SERVICE_TENANT_NAME glance-search search (if Search is enabled)
|
229
|
253
|
|
230
|
254
|
function create_glance_accounts {
|
231
|
255
|
if is_service_enabled g-api; then
|
...
|
...
|
@@ -251,13 +284,27 @@ function create_glance_accounts {
|
251
|
251
|
"$GLANCE_SERVICE_PROTOCOL://$GLANCE_HOSTPORT"
|
252
|
252
|
fi
|
253
|
253
|
fi
|
|
254
|
+
|
|
255
|
+ # Add glance-search service and endpoints
|
|
256
|
+ if is_service_enabled g-search; then
|
|
257
|
+ if [[ "$KEYSTONE_CATALOG_BACKEND" = 'sql' ]]; then
|
|
258
|
+ local glance_search_service=$(get_or_create_service "glance-search" \
|
|
259
|
+ "search" "EXPERIMENTAL - Glance Graffiti Search Service")
|
|
260
|
+
|
|
261
|
+ get_or_create_endpoint $glance_search_service \
|
|
262
|
+ "$REGION_NAME" \
|
|
263
|
+ "$GLANCE_SERVICE_PROTOCOL://$GLANCE_SEARCH_HOSTPORT" \
|
|
264
|
+ "$GLANCE_SERVICE_PROTOCOL://$GLANCE_SEARCH_HOSTPORT" \
|
|
265
|
+ "$GLANCE_SERVICE_PROTOCOL://$GLANCE_SEARCH_HOSTPORT"
|
|
266
|
+ fi
|
|
267
|
+ fi
|
254
|
268
|
}
|
255
|
269
|
|
256
|
270
|
# create_glance_cache_dir() - Part of the init_glance() process
|
257
|
271
|
function create_glance_cache_dir {
|
258
|
272
|
# Create cache dir
|
259
|
|
- sudo install -d -o $STACK_USER $GLANCE_AUTH_CACHE_DIR/api $GLANCE_AUTH_CACHE_DIR/registry
|
260
|
|
- rm -f $GLANCE_AUTH_CACHE_DIR/api/* $GLANCE_AUTH_CACHE_DIR/registry/*
|
|
273
|
+ sudo install -d -o $STACK_USER $GLANCE_AUTH_CACHE_DIR/api $GLANCE_AUTH_CACHE_DIR/registry $GLANCE_AUTH_CACHE_DIR/search
|
|
274
|
+ rm -f $GLANCE_AUTH_CACHE_DIR/api/* $GLANCE_AUTH_CACHE_DIR/registry/* $GLANCE_AUTH_CACHE_DIR/search/*
|
261
|
275
|
}
|
262
|
276
|
|
263
|
277
|
# init_glance() - Initialize databases, etc.
|
...
|
...
|
@@ -280,6 +327,12 @@ function init_glance {
|
280
|
280
|
$GLANCE_BIN_DIR/glance-manage db_load_metadefs
|
281
|
281
|
|
282
|
282
|
create_glance_cache_dir
|
|
283
|
+
|
|
284
|
+ # Init glance search by exporting found metadefs/images to elasticsearch
|
|
285
|
+ if is_service_enabled g-search; then
|
|
286
|
+ ${TOP_DIR}/pkg/elasticsearch.sh start
|
|
287
|
+ $GLANCE_BIN_DIR/glance-index
|
|
288
|
+ fi
|
283
|
289
|
}
|
284
|
290
|
|
285
|
291
|
# install_glanceclient() - Collect source and prepare
|
...
|
...
|
@@ -301,11 +354,13 @@ function install_glance {
|
301
|
301
|
fi
|
302
|
302
|
|
303
|
303
|
git_clone $GLANCE_REPO $GLANCE_DIR $GLANCE_BRANCH
|
304
|
|
- setup_develop $GLANCE_DIR
|
305
|
|
- if is_service_enabled g-graffiti; then
|
|
304
|
+
|
|
305
|
+ if is_service_enabled g-search; then
|
306
|
306
|
${TOP_DIR}/pkg/elasticsearch.sh download
|
307
|
307
|
${TOP_DIR}/pkg/elasticsearch.sh install
|
308
|
308
|
fi
|
|
309
|
+
|
|
310
|
+ setup_develop $GLANCE_DIR
|
309
|
311
|
}
|
310
|
312
|
|
311
|
313
|
# start_glance() - Start running processes, including screen
|
...
|
...
|
@@ -314,18 +369,29 @@ function start_glance {
|
314
|
314
|
if is_service_enabled tls-proxy; then
|
315
|
315
|
start_tls_proxy '*' $GLANCE_SERVICE_PORT $GLANCE_SERVICE_HOST $GLANCE_SERVICE_PORT_INT &
|
316
|
316
|
start_tls_proxy '*' $GLANCE_REGISTRY_PORT $GLANCE_SERVICE_HOST $GLANCE_REGISTRY_PORT_INT &
|
|
317
|
+
|
|
318
|
+ # Handle g-search
|
|
319
|
+ if is_service_enabled g-search; then
|
|
320
|
+ start_tls_proxy '*' $GLANCE_SEARCH_PORT $GLANCE_SERVICE_HOST $GLANCE_SEARCH_PORT_INT &
|
|
321
|
+ fi
|
317
|
322
|
fi
|
318
|
323
|
|
319
|
324
|
run_process g-reg "$GLANCE_BIN_DIR/glance-registry --config-file=$GLANCE_CONF_DIR/glance-registry.conf"
|
320
|
325
|
run_process g-api "$GLANCE_BIN_DIR/glance-api --config-file=$GLANCE_CONF_DIR/glance-api.conf"
|
321
|
326
|
|
322
|
|
- if is_service_enabled g-graffiti; then
|
323
|
|
- ${TOP_DIR}/pkg/elasticsearch.sh start
|
324
|
|
- fi
|
325
|
327
|
echo "Waiting for g-api ($GLANCE_HOSTPORT) to start..."
|
326
|
328
|
if ! wait_for_service $SERVICE_TIMEOUT $GLANCE_SERVICE_PROTOCOL://$GLANCE_HOSTPORT; then
|
327
|
329
|
die $LINENO "g-api did not start"
|
328
|
330
|
fi
|
|
331
|
+
|
|
332
|
+ # Start g-search after g-reg/g-api
|
|
333
|
+ if is_service_enabled g-search; then
|
|
334
|
+ run_process g-search "$GLANCE_BIN_DIR/glance-search --config-file=$GLANCE_CONF_DIR/glance-search.conf"
|
|
335
|
+ echo "Waiting for g-search ($GLANCE_SEARCH_HOSTPORT) to start..."
|
|
336
|
+ if ! wait_for_service $SERVICE_TIMEOUT $GLANCE_SERVICE_PROTOCOL://$GLANCE_SEARCH_HOSTPORT; then
|
|
337
|
+ die $LINENO "g-search did not start"
|
|
338
|
+ fi
|
|
339
|
+ fi
|
329
|
340
|
}
|
330
|
341
|
|
331
|
342
|
# stop_glance() - Stop running processes
|
...
|
...
|
@@ -333,6 +399,10 @@ function stop_glance {
|
333
|
333
|
# Kill the Glance screen windows
|
334
|
334
|
stop_process g-api
|
335
|
335
|
stop_process g-reg
|
|
336
|
+
|
|
337
|
+ if is_service_enabled g-search; then
|
|
338
|
+ stop_process g-search
|
|
339
|
+ fi
|
336
|
340
|
}
|
337
|
341
|
|
338
|
342
|
# Restore xtrace
|