Initialize metadata definitions catalog

This patch copies all files from /etc/metadefs to
/etc/glance/metadefs and calls glance-manage db_load_metadefs
after successful database migration. This covers whole
process of initializing the metadata catalog.

Change-Id: I2ffd19bf543708b42229ef78dd17ee317f58e6ad
Implements: blueprint glance-metadata-definitions-support
Co-Authored-By: Travis Tripp <travis.tripp@hp.com>
diff --git a/lib/glance b/lib/glance
index 7a28b68..d9c4a20 100644
--- a/lib/glance
+++ b/lib/glance
@@ -34,6 +34,7 @@
 GLANCE_AUTH_CACHE_DIR=${GLANCE_AUTH_CACHE_DIR:-/var/cache/glance}
 
 GLANCE_CONF_DIR=${GLANCE_CONF_DIR:-/etc/glance}
+GLANCE_METADEF_DIR=$GLANCE_CONF_DIR/metadefs
 GLANCE_REGISTRY_CONF=$GLANCE_CONF_DIR/glance-registry.conf
 GLANCE_API_CONF=$GLANCE_CONF_DIR/glance-api.conf
 GLANCE_REGISTRY_PASTE_INI=$GLANCE_CONF_DIR/glance-registry-paste.ini
@@ -81,6 +82,11 @@
     fi
     sudo chown $STACK_USER $GLANCE_CONF_DIR
 
+    if [[ ! -d $GLANCE_METADEF_DIR ]]; then
+        sudo mkdir -p $GLANCE_METADEF_DIR
+    fi
+    sudo chown $STACK_USER $GLANCE_METADEF_DIR
+
     # Copy over our glance configurations and update them
     cp $GLANCE_DIR/etc/glance-registry.conf $GLANCE_REGISTRY_CONF
     iniset $GLANCE_REGISTRY_CONF DEFAULT debug $ENABLE_DEBUG_LOG_LEVEL
@@ -177,6 +183,8 @@
 
     cp -p $GLANCE_DIR/etc/policy.json $GLANCE_POLICY_JSON
     cp -p $GLANCE_DIR/etc/schema-image.json $GLANCE_SCHEMA_JSON
+
+    cp -p $GLANCE_DIR/etc/metadefs/*.json $GLANCE_METADEF_DIR
 }
 
 # create_glance_accounts() - Set up common required glance accounts
@@ -241,6 +249,9 @@
     # Migrate glance database
     $GLANCE_BIN_DIR/glance-manage db_sync
 
+    # Load metadata definitions
+    $GLANCE_BIN_DIR/glance-manage db_load_metadefs
+
     create_glance_cache_dir
 }