Browse code

Converts all tables and connections to UTF8.

This is https://review.openstack.org/4221 resurrected as the original
was auto-abandoned.

Nova database is handled in db migrations; this adds the nova.conf
change noted by Naveed Massjouni in the original proposal.

Connections to quantum and melange DB changed to utf8

References bug 933208.

Change-Id: Ifc4e5cd71cafb719da62214aafc394563ed1aa29

Gabriel Hurley authored on 2012/02/16 10:39:05
Showing 1 changed files
... ...
@@ -803,7 +803,7 @@ if is_service_enabled g-reg; then
803 803
 
804 804
     # (re)create glance database
805 805
     mysql -u$MYSQL_USER -p$MYSQL_PASSWORD -e 'DROP DATABASE IF EXISTS glance;'
806
-    mysql -u$MYSQL_USER -p$MYSQL_PASSWORD -e 'CREATE DATABASE glance;'
806
+    mysql -u$MYSQL_USER -p$MYSQL_PASSWORD -e 'CREATE DATABASE glance CHARACTER SET utf8;'
807 807
 
808 808
     function glance_config {
809 809
         sudo sed -e "
... ...
@@ -814,7 +814,7 @@ if is_service_enabled g-reg; then
814 814
             s,%KEYSTONE_SERVICE_HOST%,$KEYSTONE_SERVICE_HOST,g;
815 815
             s,%KEYSTONE_SERVICE_PORT%,$KEYSTONE_SERVICE_PORT,g;
816 816
             s,%KEYSTONE_SERVICE_PROTOCOL%,$KEYSTONE_SERVICE_PROTOCOL,g;
817
-            s,%SQL_CONN%,$BASE_SQL_CONN/glance,g;
817
+            s,%SQL_CONN%,$BASE_SQL_CONN/glance?charset=utf8,g;
818 818
             s,%SERVICE_TENANT_NAME%,$SERVICE_TENANT_NAME,g;
819 819
             s,%SERVICE_USERNAME%,glance,g;
820 820
             s,%SERVICE_PASSWORD%,$SERVICE_PASSWORD,g;
... ...
@@ -1262,7 +1262,7 @@ add_nova_opt "flat_network_bridge=$FLAT_NETWORK_BRIDGE"
1262 1262
 if [ -n "$FLAT_INTERFACE" ]; then
1263 1263
     add_nova_opt "flat_interface=$FLAT_INTERFACE"
1264 1264
 fi
1265
-add_nova_opt "sql_connection=$BASE_SQL_CONN/nova"
1265
+add_nova_opt "sql_connection=$BASE_SQL_CONN/nova?charset=utf8"
1266 1266
 add_nova_opt "libvirt_type=$LIBVIRT_TYPE"
1267 1267
 add_nova_opt "instance_name_template=${INSTANCE_NAME_PREFIX}%08x"
1268 1268
 # All nova-compute workers need to know the vnc configuration options
... ...
@@ -1426,12 +1426,12 @@ fi
1426 1426
 if is_service_enabled key; then
1427 1427
     # (re)create keystone database
1428 1428
     mysql -u$MYSQL_USER -p$MYSQL_PASSWORD -e 'DROP DATABASE IF EXISTS keystone;'
1429
-    mysql -u$MYSQL_USER -p$MYSQL_PASSWORD -e 'CREATE DATABASE keystone;'
1429
+    mysql -u$MYSQL_USER -p$MYSQL_PASSWORD -e 'CREATE DATABASE keystone CHARACTER SET utf8;'
1430 1430
 
1431 1431
     # Configure keystone.conf
1432 1432
     KEYSTONE_CONF=$KEYSTONE_DIR/etc/keystone.conf
1433 1433
     cp $FILES/keystone.conf $KEYSTONE_CONF
1434
-    sudo sed -e "s,%SQL_CONN%,$BASE_SQL_CONN/keystone,g" -i $KEYSTONE_CONF
1434
+    sudo sed -e "s,%SQL_CONN%,$BASE_SQL_CONN/keystone?charset=utf8,g" -i $KEYSTONE_CONF
1435 1435
     sudo sed -e "s,%DEST%,$DEST,g" -i $KEYSTONE_CONF
1436 1436
     sudo sed -e "s,%SERVICE_TOKEN%,$SERVICE_TOKEN,g" -i $KEYSTONE_CONF
1437 1437
     sudo sed -e "s,%KEYSTONE_DIR%,$KEYSTONE_DIR,g" -i $KEYSTONE_CONF
... ...
@@ -1523,7 +1523,7 @@ if is_service_enabled q-svc; then
1523 1523
         # Create database for the plugin/agent
1524 1524
         if is_service_enabled mysql; then
1525 1525
             mysql -u$MYSQL_USER -p$MYSQL_PASSWORD -e 'DROP DATABASE IF EXISTS ovs_quantum;'
1526
-            mysql -u$MYSQL_USER -p$MYSQL_PASSWORD -e 'CREATE DATABASE IF NOT EXISTS ovs_quantum;'
1526
+            mysql -u$MYSQL_USER -p$MYSQL_PASSWORD -e 'CREATE DATABASE IF NOT EXISTS ovs_quantum CHARACTER SET utf8;'
1527 1527
         else
1528 1528
             echo "mysql must be enabled in order to use the $Q_PLUGIN Quantum plugin."
1529 1529
             exit 1
... ...
@@ -1549,7 +1549,7 @@ if is_service_enabled q-agt; then
1549 1549
        # Start up the quantum <-> openvswitch agent
1550 1550
        QUANTUM_OVS_CONFIG_FILE=$QUANTUM_CONF_DIR/ovs_quantum_plugin.ini
1551 1551
        sudo cp $QUANTUM_DIR/etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini $QUANTUM_OVS_CONFIG_FILE
1552
-       sudo sed -i -e "s/^sql_connection =.*$/sql_connection = mysql:\/\/$MYSQL_USER:$MYSQL_PASSWORD@$MYSQL_HOST\/ovs_quantum/g" $QUANTUM_OVS_CONFIG_FILE
1552
+       sudo sed -i -e "s/^sql_connection =.*$/sql_connection = mysql:\/\/$MYSQL_USER:$MYSQL_PASSWORD@$MYSQL_HOST\/ovs_quantum?charset=utf8/g" $QUANTUM_OVS_CONFIG_FILE
1553 1553
        screen_it q-agt "sleep 4; sudo python $QUANTUM_DIR/quantum/plugins/openvswitch/agent/ovs_quantum_agent.py $QUANTUM_OVS_CONFIG_FILE -v"
1554 1554
     fi
1555 1555
 
... ...
@@ -1559,14 +1559,14 @@ fi
1559 1559
 if is_service_enabled m-svc; then
1560 1560
     if is_service_enabled mysql; then
1561 1561
         mysql -u$MYSQL_USER -p$MYSQL_PASSWORD -e 'DROP DATABASE IF EXISTS melange;'
1562
-        mysql -u$MYSQL_USER -p$MYSQL_PASSWORD -e 'CREATE DATABASE melange;'
1562
+        mysql -u$MYSQL_USER -p$MYSQL_PASSWORD -e 'CREATE DATABASE melange CHARACTER SET utf8;'
1563 1563
     else
1564 1564
         echo "mysql must be enabled in order to use the $Q_PLUGIN Quantum plugin."
1565 1565
         exit 1
1566 1566
     fi
1567 1567
     MELANGE_CONFIG_FILE=$MELANGE_DIR/etc/melange/melange.conf
1568 1568
     cp $MELANGE_CONFIG_FILE.sample $MELANGE_CONFIG_FILE
1569
-    sed -i -e "s/^sql_connection =.*$/sql_connection = mysql:\/\/$MYSQL_USER:$MYSQL_PASSWORD@$MYSQL_HOST\/melange/g" $MELANGE_CONFIG_FILE
1569
+    sed -i -e "s/^sql_connection =.*$/sql_connection = mysql:\/\/$MYSQL_USER:$MYSQL_PASSWORD@$MYSQL_HOST\/melange?charset=utf8/g" $MELANGE_CONFIG_FILE
1570 1570
     cd $MELANGE_DIR && PYTHONPATH=.:$PYTHONPATH python $MELANGE_DIR/bin/melange-manage --config-file=$MELANGE_CONFIG_FILE db_sync
1571 1571
     screen_it m-svc "cd $MELANGE_DIR && PYTHONPATH=.:$PYTHONPATH python $MELANGE_DIR/bin/melange-server --config-file=$MELANGE_CONFIG_FILE"
1572 1572
     echo "Waiting for melange to start..."