On Tue, Mar 18, 2014 at 6:00 AM, John Eckersberg <jeckersb@redhat.com> wrote:
Andrew Lau <andrew@andrewklau.com> writes:
> - From a brief look at the manifest and trial and error, it looks like the
> ml2 plugin does have some support in the quickstack files. It however fails
> at the neutron-db-manage. Manual steps: [2]
> Error Output: [3]
>
> [1] https://github.com/andrewklau/astapor
> [2] http://openstack.redhat.com/ML2_plugin
> [3] http://www.fpaste.org/85834/94970823/

I haven't tried Foreman+ML2 on Icehouse yet, but I've seen several weird
database issues caused by tables using the myisam engine instead of
innodb.  A quick workaround to try is...

cat <<EOF > /etc/mysql/conf.d/innodb.cnf
[mysqld]
default-storage-engine = innodb
EOF

service mysqld restart

mysql -e 'drop database neutron; create database neutron;'

Then rerun neutron-db-manage.  That'll default all the tables to use
innodb.

The 1000 byte key length limit is a constraint of MyISAM.  InnoDB has a
similar constraint but it appears more generous.  How many bytes a field
actually takes up in the key length seems to depend on the encoding and
maybe some other stuff that I'm not sure offhand.  However this test
shows switching engines very well may fix that particular error:

mysql> create table test (field1 VARCHAR(512) NOT NULL, field2 VARCHAR(512) NOT NULL, PRIMARY KEY(field1, field2)) ENGINE=MyISAM;
ERROR 1071 (42000): Specified key was too long; max key length is 1000 bytes
mysql> create table test (field1 VARCHAR(512) NOT NULL, field2 VARCHAR(512) NOT NULL, PRIMARY KEY(field1, field2)) ENGINE=InnoDB;
Query OK, 0 rows affected (0.04 sec)


Hi John,

Thanks for that suggestion, it got me passed that first step and into another error :D
sqlalchemy.exc.ProgrammingError: (ProgrammingError) (1146, "Table 'neutron_ml2.agents' doesn't exist") 'ALTER TABLE agents ADD CONSTRAINT uniq_agents0agent_type0host UNIQUE (agent_type, host)' ()

Which seems to be very similar to this BZ here:

Cheers.