components/openstack/neutron/patches/11-mysql_cluster_support.patch
author Octave Orgeron <octave.orgeron@oracle.com>
Thu, 08 Sep 2016 13:16:06 -0600
changeset 6866 4c1935f5ec9a
permissions -rw-r--r--
24394524 MySQL Cluster support for Cinder must be ported to Mitaka 24394534 MySQL Cluster support for Glance must be ported to Mitaka 24394543 MySQL Cluster support for Heat must be ported to Mitaka 24394552 MySQL Cluster support for Ironic must be ported to Mitaka 24394567 MySQL Cluster support for Keystone must be ported to Mitaka 24394574 MySQL Cluster support for Neutron must be ported to Mitaka 24394587 MySQL Cluster support for Nova must be ported to Mitaka 24409419 MySQL Cluster support for oslo.db must be ported to Mitaka
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6866
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
     1
This patchset is for bug:
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
     2
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
     3
24394574 Mitaka Neutron should support MySQL Cluster
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
     4
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
     5
This fixes the following aspects of Neutron:
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
     6
1. Implementation of an oslo.db configuration parameter to specify the MySQL
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
     7
   storage engine (mysql_storage_engine).
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
     8
2. Replacement of hardcoded SQL statements that set the engine to "InnoDB"
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
     9
   to the above configuration value.
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    10
3. Logic to handle SQL differences between MySQL InnoDB and MySQL Cluster (NDB).
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    11
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    12
This has not been committed upstream, but has been filed in launchpad:
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    13
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    14
https://bugs.launchpad.net/neutron/+bug/1564110
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    15
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    16
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    17
--- neutron-8.1.2/neutron/db/agents_db.py.orig	2016-08-25 14:48:36.647874143 -0700
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    18
+++ neutron-8.1.2/neutron/db/agents_db.py	2016-08-25 15:25:50.307210666 -0700
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    19
@@ -73,6 +73,7 @@ AGENT_OPTS = [
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    20
                        "agent until admin changes admin_state_up to True.")),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    21
 ]
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    22
 cfg.CONF.register_opts(AGENT_OPTS)
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    23
+CONF = cfg.CONF
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    24
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    25
 # this is the ratio from agent_down_time to the time we use to consider
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    26
 # the agents down for considering their resource versions in the
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    27
@@ -90,10 +91,17 @@ class Agent(model_base.BASEV2, model_bas
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    28
     )
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    29
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    30
     # L3 agent, DHCP agent, OVS agent, LinuxBridge
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    31
-    agent_type = sa.Column(sa.String(255), nullable=False)
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    32
-    binary = sa.Column(sa.String(255), nullable=False)
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    33
-    # TOPIC is a fanout exchange topic
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    34
-    topic = sa.Column(sa.String(255), nullable=False)
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    35
+    if CONF.database.mysql_storage_engine == 'NDBCLUSTER':
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    36
+        agent_type = sa.Column(sa.String(128), nullable=False)
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    37
+        binary = sa.Column(sa.String(128), nullable=False)
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    38
+        # TOPIC is a fanout exchange topic
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    39
+        topic = sa.Column(sa.String(128), nullable=False)
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    40
+    else:
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    41
+        agent_type = sa.Column(sa.String(255), nullable=False)
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    42
+        binary = sa.Column(sa.String(255), nullable=False)
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    43
+        # TOPIC is a fanout exchange topic
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    44
+        topic = sa.Column(sa.String(255), nullable=False)
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    45
+
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    46
     # TOPIC.host is a target topic
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    47
     host = sa.Column(sa.String(255), nullable=False)
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    48
     availability_zone = sa.Column(sa.String(255))
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    49
@@ -108,11 +116,17 @@ class Agent(model_base.BASEV2, model_bas
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    50
     # description is note for admin user
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    51
     description = sa.Column(sa.String(attributes.DESCRIPTION_MAX_LEN))
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    52
     # configurations: a json dict string, I think 4095 is enough
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    53
-    configurations = sa.Column(sa.String(4095), nullable=False)
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    54
+    if CONF.database.mysql_storage_engine == 'NDBCLUSTER':
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    55
+        configurations = sa.Column(sa.Text(), nullable=False)
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    56
+    else:
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    57
+        configurations = sa.Column(sa.String(4095), nullable=False)
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    58
     # resource_versions: json dict, 8191 allows for ~256 resource versions
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    59
     #                    assuming ~32byte length "'name': 'ver',"
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    60
     #                    the whole row limit is 65535 bytes in mysql
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    61
-    resource_versions = sa.Column(sa.String(8191))
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    62
+    if CONF.database.mysql_storage_engine == 'NDBCLUSTER':
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    63
+        resource_versions = sa.Column(sa.Text())
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    64
+    else:
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    65
+        resource_versions = sa.Column(sa.String(8191))
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    66
     # load - number of resources hosted by the agent
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    67
     load = sa.Column(sa.Integer, server_default='0', nullable=False)
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    68
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    69
--- neutron-8.1.2/neutron/db/api.py.orig	2016-08-25 14:46:46.198992228 -0700
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    70
+++ neutron-8.1.2/neutron/db/api.py	2016-08-25 14:43:31.067614686 -0700
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    71
@@ -37,6 +37,8 @@ retry_db_errors = oslo_db_api.wrap_db_re
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    72
     exception_checker=is_deadlock
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    73
 )
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    74
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    75
+CONF = cfg.CONF
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    76
+
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    77
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    78
 @contextlib.contextmanager
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    79
 def exc_to_retry(exceptions):
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    80
@@ -81,12 +83,22 @@ def get_session(autocommit=True, expire_
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    81
 @contextlib.contextmanager
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    82
 def autonested_transaction(sess):
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    83
     """This is a convenience method to not bother with 'nested' parameter."""
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    84
-    if sess.is_active:
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    85
-        session_context = sess.begin(nested=True)
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    86
+    # MySQL Cluster does not support nested operations.
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    87
+    if CONF.database.mysql_storage_engine == "NDBCLUSTER":
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    88
+        try:
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    89
+            session_context = sess.begin(subtransactions=True, nested=False)
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    90
+        except exc.InvalidRequestError:
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    91
+            session_context = sess.begin(subtransactions=False, nested=False)
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    92
+        finally:
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    93
+            with session_context as tx:
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    94
+                yield tx
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    95
     else:
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    96
-        session_context = sess.begin(subtransactions=True)
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    97
-    with session_context as tx:
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    98
-        yield tx
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
    99
+        if sess.is_active:
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   100
+            session_context = sess.begin(nested=True)
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   101
+        else:
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   102
+            session_context = sess.begin(subtransactions=True)
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   103
+        with session_context as tx:
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   104
+            yield tx
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   105
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   106
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   107
 # Common database operation implementations
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   108
--- neutron-8.1.2/neutron/db/flavors_db.py.orig	2016-08-25 15:01:44.265969231 -0700
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   109
+++ neutron-8.1.2/neutron/db/flavors_db.py	2016-08-25 15:03:44.220882633 -0700
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   110
@@ -12,6 +12,7 @@
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   111
 #    License for the specific language governing permissions and limitations
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   112
 #    under the License.
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   113
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   114
+from oslo_config import cfg
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   115
 from oslo_log import log as logging
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   116
 from oslo_utils import uuidutils
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   117
 import sqlalchemy as sa
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   118
@@ -26,6 +27,8 @@ from neutron.extensions import flavors a
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   119
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   120
 LOG = logging.getLogger(__name__)
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   121
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   122
+CONF = cfg.CONF
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   123
+
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   124
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   125
 class Flavor(model_base.BASEV2, model_base.HasId):
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   126
     name = sa.Column(sa.String(attr.NAME_MAX_LEN))
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   127
@@ -43,7 +46,10 @@ class ServiceProfile(model_base.BASEV2,
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   128
     driver = sa.Column(sa.String(1024), nullable=False)
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   129
     enabled = sa.Column(sa.Boolean, nullable=False, default=True,
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   130
                         server_default=sa.sql.true())
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   131
-    metainfo = sa.Column(sa.String(4096))
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   132
+    if CONF.database.mysql_storage_engine == 'NDBCLUSTER':
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   133
+        metainfo = sa.Column(sa.Text())
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   134
+    else:
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   135
+        metainfo = sa.Column(sa.String(4096))
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   136
     flavors = orm.relationship("FlavorServiceProfileBinding")
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   137
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   138
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   139
--- neutron-8.1.2/neutron/db/migration/alembic_migrations/agent_init_ops.py.orig	2016-08-25 14:46:52.869757151 -0700
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   140
+++ neutron-8.1.2/neutron/db/migration/alembic_migrations/agent_init_ops.py	2016-08-25 14:43:31.069947973 -0700
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   141
@@ -18,26 +18,53 @@
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   142
 # in the modules for relevant resources
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   143
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   144
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   145
+from alembic import context
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   146
 from alembic import op
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   147
 import sqlalchemy as sa
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   148
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   149
+config = context.config
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   150
+CONF = config.neutron_config
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   151
+
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   152
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   153
 def upgrade():
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   154
-    op.create_table(
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   155
-        'agents',
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   156
-        sa.Column('id', sa.String(length=36), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   157
-        sa.Column('agent_type', sa.String(length=255), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   158
-        sa.Column('binary', sa.String(length=255), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   159
-        sa.Column('topic', sa.String(length=255), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   160
-        sa.Column('host', sa.String(length=255), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   161
-        sa.Column('admin_state_up', sa.Boolean(), nullable=False,
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   162
-                  server_default=sa.sql.true()),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   163
-        sa.Column('created_at', sa.DateTime(), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   164
-        sa.Column('started_at', sa.DateTime(), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   165
-        sa.Column('heartbeat_timestamp', sa.DateTime(), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   166
-        sa.Column('description', sa.String(length=255), nullable=True),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   167
-        sa.Column('configurations', sa.String(length=4095), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   168
-        sa.Column('load', sa.Integer(), server_default='0', nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   169
-        sa.PrimaryKeyConstraint('id'),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   170
-        sa.UniqueConstraint('agent_type', 'host',
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   171
-                            name='uniq_agents0agent_type0host'))
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   172
+    # MySQL Cluster limits rows to 14,000 characters. This adjusts the
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   173
+    # columns to fit within that limit. Excessively large columns are
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   174
+    # converted to TEXT.
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   175
+    if CONF.database.mysql_storage_engine == "NDBCLUSTER":
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   176
+        op.create_table(
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   177
+            'agents',
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   178
+            sa.Column('id', sa.String(length=36), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   179
+            sa.Column('agent_type', sa.String(length=128), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   180
+            sa.Column('binary', sa.String(length=128), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   181
+            sa.Column('topic', sa.String(length=128), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   182
+            sa.Column('host', sa.String(length=255), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   183
+            sa.Column('admin_state_up', sa.Boolean(), nullable=False,
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   184
+                      server_default=sa.sql.true()),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   185
+            sa.Column('created_at', sa.DateTime(), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   186
+            sa.Column('started_at', sa.DateTime(), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   187
+            sa.Column('heartbeat_timestamp', sa.DateTime(), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   188
+            sa.Column('description', sa.String(length=255), nullable=True),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   189
+            sa.Column('configurations', sa.Text(), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   190
+            sa.Column('load', sa.Integer(), server_default='0', nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   191
+            sa.PrimaryKeyConstraint('id'),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   192
+            sa.UniqueConstraint('agent_type', 'host',
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   193
+                                name='uniq_agents0agent_type0host'))
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   194
+    else:
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   195
+        op.create_table(
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   196
+            'agents',
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   197
+            sa.Column('id', sa.String(length=36), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   198
+            sa.Column('agent_type', sa.String(length=255), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   199
+            sa.Column('binary', sa.String(length=255), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   200
+            sa.Column('topic', sa.String(length=255), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   201
+            sa.Column('host', sa.String(length=255), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   202
+            sa.Column('admin_state_up', sa.Boolean(), nullable=False,
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   203
+                      server_default=sa.sql.true()),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   204
+            sa.Column('created_at', sa.DateTime(), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   205
+            sa.Column('started_at', sa.DateTime(), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   206
+            sa.Column('heartbeat_timestamp', sa.DateTime(), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   207
+            sa.Column('description', sa.String(length=255), nullable=True),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   208
+            sa.Column('configurations', sa.String(length=4095), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   209
+            sa.Column('load', sa.Integer(), server_default='0', nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   210
+            sa.PrimaryKeyConstraint('id'),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   211
+            sa.UniqueConstraint('agent_type', 'host',
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   212
+                                name='uniq_agents0agent_type0host'))
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   213
--- neutron-8.1.2/neutron/db/migration/alembic_migrations/dvr_init_opts.py.orig	2016-08-25 14:46:59.635718601 -0700
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   214
+++ neutron-8.1.2/neutron/db/migration/alembic_migrations/dvr_init_opts.py	2016-08-25 14:43:31.071309141 -0700
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   215
@@ -15,9 +15,13 @@
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   216
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   217
 # Initial operations for dvr
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   218
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   219
+from alembic import context
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   220
 from alembic import op
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   221
 import sqlalchemy as sa
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   222
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   223
+config = context.config
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   224
+CONF = config.neutron_config
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   225
+
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   226
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   227
 def upgrade():
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   228
     op.create_table(
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   229
@@ -27,23 +31,43 @@ def upgrade():
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   230
                   nullable=False, unique=True),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   231
         sa.PrimaryKeyConstraint('host')
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   232
     )
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   233
-    op.create_table(
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   234
-        'ml2_dvr_port_bindings',
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   235
-        sa.Column('port_id', sa.String(length=36), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   236
-        sa.Column('host', sa.String(length=255), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   237
-        sa.Column('router_id', sa.String(length=36), nullable=True),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   238
-        sa.Column('vif_type', sa.String(length=64), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   239
-        sa.Column('vif_details', sa.String(length=4095),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   240
-                  nullable=False, server_default=''),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   241
-        sa.Column('vnic_type', sa.String(length=64),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   242
-                  nullable=False, server_default='normal'),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   243
-        sa.Column('profile', sa.String(length=4095),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   244
-                  nullable=False, server_default=''),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   245
-        sa.Column(u'status', sa.String(16), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   246
-        sa.ForeignKeyConstraint(['port_id'], ['ports.id'],
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   247
-                                ondelete='CASCADE'),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   248
-        sa.PrimaryKeyConstraint('port_id', 'host')
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   249
-    )
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   250
+    # MySQL Cluster limits rows to 14,000 characters. This adjusts the
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   251
+    # columns to fit within that limit. Excessively large columns are
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   252
+    # converted to TEXT.
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   253
+    if CONF.database.mysql_storage_engine == "NDBCLUSTER":
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   254
+        op.create_table(
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   255
+            'ml2_dvr_port_bindings',
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   256
+            sa.Column('port_id', sa.String(length=36), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   257
+            sa.Column('host', sa.String(length=255), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   258
+            sa.Column('router_id', sa.String(length=36), nullable=True),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   259
+            sa.Column('vif_type', sa.String(length=64), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   260
+            sa.Column('vif_details', sa.Text(), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   261
+            sa.Column('vnic_type', sa.String(length=64),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   262
+                      nullable=False, server_default='normal'),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   263
+            sa.Column('profile', sa.Text(), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   264
+            sa.Column(u'status', sa.String(16), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   265
+            sa.ForeignKeyConstraint(['port_id'], ['ports.id'],
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   266
+                                    ondelete='CASCADE'),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   267
+            sa.PrimaryKeyConstraint('port_id', 'host')
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   268
+        )
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   269
+    else:
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   270
+        op.create_table(
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   271
+            'ml2_dvr_port_bindings',
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   272
+            sa.Column('port_id', sa.String(length=36), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   273
+            sa.Column('host', sa.String(length=255), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   274
+            sa.Column('router_id', sa.String(length=36), nullable=True),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   275
+            sa.Column('vif_type', sa.String(length=64), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   276
+            sa.Column('vif_details', sa.String(length=4095),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   277
+                      nullable=False, server_default=''),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   278
+            sa.Column('vnic_type', sa.String(length=64),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   279
+                      nullable=False, server_default='normal'),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   280
+            sa.Column('profile', sa.String(length=4095),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   281
+                      nullable=False, server_default=''),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   282
+            sa.Column(u'status', sa.String(16), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   283
+            sa.ForeignKeyConstraint(['port_id'], ['ports.id'],
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   284
+                                    ondelete='CASCADE'),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   285
+            sa.PrimaryKeyConstraint('port_id', 'host')
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   286
+        )
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   287
     op.create_table(
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   288
         'csnat_l3_agent_bindings',
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   289
         sa.Column('router_id', sa.String(length=36), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   290
--- neutron-8.1.2/neutron/db/migration/alembic_migrations/env.py.orig	2016-08-25 14:47:07.700975613 -0700
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   291
+++ neutron-8.1.2/neutron/db/migration/alembic_migrations/env.py	2016-08-25 14:43:31.072607136 -0700
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   292
@@ -34,6 +34,7 @@ except ImportError:
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   293
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   294
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   295
 MYSQL_ENGINE = None
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   296
+MYSQL_STORAGE_ENGINE = None
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   297
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   298
 # this is the Alembic Config object, which provides
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   299
 # access to the values within the .ini file in use.
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   300
@@ -59,6 +60,16 @@ def set_mysql_engine():
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   301
                     model_base.BASEV2.__table_args__['mysql_engine'])
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   302
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   303
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   304
+def set_mysql_storage_engine():
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   305
+    try:
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   306
+        mysql_storage_engine = neutron_config.database.mysql_storage_engine
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   307
+    except cfg.NoSuchOptError:
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   308
+        mysql_storage_engine = InnoDB
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   309
+
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   310
+    global MYSQL_STORAGE_ENGINE
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   311
+    MYSQL_STORAGE_ENGINE = mysql_storage_engine
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   312
+
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   313
+
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   314
 def include_object(object_, name, type_, reflected, compare_to):
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   315
     if type_ == 'table' and name in external.TABLES:
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   316
         return False
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   317
@@ -81,6 +92,7 @@ def run_migrations_offline():
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   318
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   319
     """
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   320
     set_mysql_engine()
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   321
+    set_mysql_storage_engine()
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   322
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   323
     kwargs = dict()
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   324
     if neutron_config.database.connection:
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   325
@@ -108,6 +120,7 @@ def run_migrations_online():
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   326
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   327
     """
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   328
     set_mysql_engine()
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   329
+    set_mysql_storage_engine()
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   330
     connection = config.attributes.get('connection')
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   331
     with DBConnection(neutron_config.database.connection, connection) as conn:
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   332
         context.configure(
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   333
--- neutron-8.1.2/neutron/db/migration/alembic_migrations/ml2_init_ops.py.orig	2016-08-25 14:47:14.579387371 -0700
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   334
+++ neutron-8.1.2/neutron/db/migration/alembic_migrations/ml2_init_ops.py	2016-08-25 14:43:31.074019618 -0700
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   335
@@ -16,9 +16,13 @@
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   336
 # Initial operations for ML2 plugin and drivers
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   337
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   338
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   339
+from alembic import context
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   340
 from alembic import op
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   341
 import sqlalchemy as sa
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   342
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   343
+config = context.config
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   344
+CONF = config.neutron_config
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   345
+
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   346
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   347
 def upgrade():
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   348
     op.create_table(
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   349
@@ -83,21 +87,39 @@ def upgrade():
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   350
                                 ondelete='CASCADE'),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   351
         sa.PrimaryKeyConstraint('id'))
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   352
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   353
-    op.create_table(
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   354
-        'ml2_port_bindings',
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   355
-        sa.Column('port_id', sa.String(length=36), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   356
-        sa.Column('host', sa.String(length=255), nullable=False,
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   357
-                  server_default=''),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   358
-        sa.Column('vif_type', sa.String(length=64), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   359
-        sa.Column('vnic_type', sa.String(length=64), nullable=False,
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   360
-                  server_default='normal'),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   361
-        sa.Column('profile', sa.String(length=4095), nullable=False,
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   362
-                  server_default=''),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   363
-        sa.Column('vif_details', sa.String(length=4095), nullable=False,
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   364
-                  server_default=''),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   365
-        sa.ForeignKeyConstraint(['port_id'], ['ports.id'],
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   366
-                                ondelete='CASCADE'),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   367
-        sa.PrimaryKeyConstraint('port_id'))
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   368
+    # MySQL Cluster limits rows to 14,000 characters. This adjusts the
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   369
+    # columns to fit within that limit. Excessively large columns are
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   370
+    # converted to TEXT.
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   371
+    if CONF.database.mysql_storage_engine == "NDBCLUSTER":
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   372
+        op.create_table(
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   373
+            'ml2_port_bindings',
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   374
+            sa.Column('port_id', sa.String(length=36), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   375
+            sa.Column('host', sa.String(length=255), nullable=False,
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   376
+                      server_default=''),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   377
+            sa.Column('vif_type', sa.String(length=64), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   378
+            sa.Column('vnic_type', sa.String(length=64), nullable=False,
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   379
+                      server_default='normal'),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   380
+            sa.Column('profile', sa.Text(), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   381
+            sa.Column('vif_details', sa.Text(), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   382
+            sa.ForeignKeyConstraint(['port_id'], ['ports.id'],
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   383
+                                    ondelete='CASCADE'),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   384
+            sa.PrimaryKeyConstraint('port_id'))
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   385
+    else:
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   386
+        op.create_table(
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   387
+            'ml2_port_bindings',
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   388
+            sa.Column('port_id', sa.String(length=36), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   389
+            sa.Column('host', sa.String(length=255), nullable=False,
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   390
+                      server_default=''),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   391
+            sa.Column('vif_type', sa.String(length=64), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   392
+            sa.Column('vnic_type', sa.String(length=64), nullable=False,
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   393
+                      server_default='normal'),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   394
+            sa.Column('profile', sa.String(length=4095), nullable=False,
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   395
+                      server_default=''),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   396
+            sa.Column('vif_details', sa.String(length=4095), nullable=False,
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   397
+                      server_default=''),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   398
+            sa.ForeignKeyConstraint(['port_id'], ['ports.id'],
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   399
+                                    ondelete='CASCADE'),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   400
+            sa.PrimaryKeyConstraint('port_id'))
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   401
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   402
     op.create_table(
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   403
         'ml2_port_binding_levels',
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   404
--- neutron-8.1.2/neutron/db/migration/alembic_migrations/versions/liberty/expand/31337ec0ffee_flavors.py.orig	2016-08-25 14:47:21.341890981 -0700
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   405
+++ neutron-8.1.2/neutron/db/migration/alembic_migrations/versions/liberty/expand/31337ec0ffee_flavors.py	2016-08-25 14:43:31.076633173 -0700
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   406
@@ -24,9 +24,13 @@ Create Date: 2014-07-17 03:00:00.00
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   407
 revision = '313373c0ffee'
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   408
 down_revision = '52c5312f6baf'
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   409
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   410
+from alembic import context
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   411
 from alembic import op
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   412
 import sqlalchemy as sa
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   413
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   414
+config = context.config
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   415
+CONF = config.neutron_config
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   416
+
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   417
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   418
 def upgrade():
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   419
     op.create_table(
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   420
@@ -40,16 +44,31 @@ def upgrade():
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   421
         sa.PrimaryKeyConstraint('id')
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   422
     )
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   423
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   424
-    op.create_table(
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   425
-        'serviceprofiles',
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   426
-        sa.Column('id', sa.String(36)),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   427
-        sa.Column('description', sa.String(1024)),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   428
-        sa.Column('driver', sa.String(1024), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   429
-        sa.Column('enabled', sa.Boolean, nullable=False,
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   430
-                  server_default=sa.sql.true()),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   431
-        sa.Column('metainfo', sa.String(4096)),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   432
-        sa.PrimaryKeyConstraint('id')
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   433
-    )
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   434
+    # MySQL Cluster limits rows to 14,000 characters. This adjusts the
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   435
+    # columns to fit within that limit. Excessively large columns are
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   436
+    # converted to TEXT.
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   437
+    if CONF.database.mysql_storage_engine == "NDBCLUSTER":
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   438
+        op.create_table(
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   439
+            'serviceprofiles',
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   440
+            sa.Column('id', sa.String(36)),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   441
+            sa.Column('description', sa.String(1024)),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   442
+            sa.Column('driver', sa.String(1024), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   443
+            sa.Column('enabled', sa.Boolean, nullable=False,
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   444
+                      server_default=sa.sql.true()),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   445
+            sa.Column('metainfo', sa.Text()),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   446
+            sa.PrimaryKeyConstraint('id')
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   447
+        )
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   448
+    else:
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   449
+        op.create_table(
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   450
+            'serviceprofiles',
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   451
+            sa.Column('id', sa.String(36)),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   452
+            sa.Column('description', sa.String(1024)),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   453
+            sa.Column('driver', sa.String(1024), nullable=False),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   454
+            sa.Column('enabled', sa.Boolean, nullable=False,
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   455
+                      server_default=sa.sql.true()),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   456
+            sa.Column('metainfo', sa.String(4096)),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   457
+            sa.PrimaryKeyConstraint('id')
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   458
+        )
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   459
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   460
     op.create_table(
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   461
         'flavorserviceprofilebindings',
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   462
--- neutron-8.1.2/neutron/db/migration/alembic_migrations/versions/mitaka/expand/31ed664953e6_add_resource_versions_row_to_agent_table.py.orig	2016-08-25 14:47:28.407786618 -0700
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   463
+++ neutron-8.1.2/neutron/db/migration/alembic_migrations/versions/mitaka/expand/31ed664953e6_add_resource_versions_row_to_agent_table.py	2016-08-25 14:43:31.079354015 -0700
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   464
@@ -25,10 +25,21 @@ Create Date: 2016-01-15 13:41:30.016915
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   465
 revision = '31ed664953e6'
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   466
 down_revision = '15e43b934f81'
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   467
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   468
+from alembic import context
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   469
 from alembic import op
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   470
 import sqlalchemy as sa
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   471
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   472
+config = context.config
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   473
+CONF = config.neutron_config
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   474
+
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   475
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   476
 def upgrade():
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   477
-    op.add_column('agents',
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   478
-                  sa.Column('resource_versions', sa.String(length=8191)))
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   479
+    # MySQL Cluster limits rows to 14,000 characters. This adjusts the
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   480
+    # columns to fit within that limit. Excessively large columns are
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   481
+    # converted to TEXT.
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   482
+    if CONF.database.mysql_storage_engine == "NDBCLUSTER":
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   483
+        op.add_column('agents',
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   484
+                      sa.Column('resource_versions', sa.Text()))
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   485
+    else:
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   486
+        op.add_column('agents',
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   487
+                      sa.Column('resource_versions', sa.String(length=8191)))
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   488
--- neutron-8.1.2/neutron/db/migration/cli.py.orig	2016-08-25 14:47:38.390828076 -0700
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   489
+++ neutron-8.1.2/neutron/db/migration/cli.py	2016-08-25 14:43:31.081266845 -0700
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   490
@@ -103,6 +103,9 @@ _db_opts = [
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   491
                default='',
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   492
                help=_('Database engine for which script will be generated '
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   493
                       'when using offline migration.')),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   494
+    cfg.StrOpt('mysql_storage_engine',
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   495
+               default='InnoDB',
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   496
+               help=_('MySQL Storage Engine')),
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   497
 ]
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   498
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   499
 CONF = cfg.ConfigOpts()
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   500
--- neutron-8.1.2/neutron/db/model_base.py.orig	2016-08-25 14:47:46.388723853 -0700
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   501
+++ neutron-8.1.2/neutron/db/model_base.py	2016-08-25 14:43:31.082371798 -0700
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   502
@@ -13,6 +13,8 @@
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   503
 # See the License for the specific language governing permissions and
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   504
 # limitations under the License.
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   505
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   506
+from alembic import context
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   507
+from oslo_config import cfg
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   508
 from oslo_db.sqlalchemy import models
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   509
 from oslo_utils import uuidutils
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   510
 import sqlalchemy as sa
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   511
@@ -22,6 +24,15 @@ from sqlalchemy import orm
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   512
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   513
 from neutron.api.v2 import attributes as attr
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   514
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   515
+# Attempt to determine the context that this module is being used.
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   516
+# If via neutron-db-manage and alembic, use alembic context. If not,
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   517
+# use oslo_config.
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   518
+try:
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   519
+    config = context.config
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   520
+    CONF = config.neutron_config
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   521
+except AttributeError:
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   522
+    CONF = cfg.CONF
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   523
+
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   524
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   525
 class HasTenant(object):
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   526
     """Tenant mixin, add to subclasses that have a tenant."""
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   527
@@ -48,7 +59,7 @@ class HasStatusDescription(object):
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   528
 class NeutronBase(models.ModelBase):
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   529
     """Base class for Neutron Models."""
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   530
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   531
-    __table_args__ = {'mysql_engine': 'InnoDB'}
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   532
+    __table_args__ = {'mysql_engine': CONF.database.mysql_storage_engine}
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   533
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   534
     def __iter__(self):
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   535
         self._i = iter(orm.object_mapper(self).columns)
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   536
--- neutron-8.1.2/neutron/plugins/ml2/models.py.orig	2016-08-25 15:03:58.107501050 -0700
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   537
+++ neutron-8.1.2/neutron/plugins/ml2/models.py	2016-08-25 15:22:24.556984578 -0700
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   538
@@ -13,6 +13,7 @@
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   539
 #    License for the specific language governing permissions and limitations
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   540
 #    under the License.
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   541
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   542
+from oslo_config import cfg
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   543
 import sqlalchemy as sa
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   544
 from sqlalchemy import orm
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   545
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   546
@@ -22,6 +23,8 @@ from neutron.extensions import portbindi
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   547
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   548
 BINDING_PROFILE_LEN = 4095
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   549
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   550
+CONF = cfg.CONF
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   551
+
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   552
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   553
 class NetworkSegment(model_base.BASEV2, model_base.HasId):
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   554
     """Represent persistent state of a network segment.
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   555
@@ -63,11 +66,22 @@ class PortBinding(model_base.BASEV2):
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   556
     vnic_type = sa.Column(sa.String(64), nullable=False,
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   557
                           default=portbindings.VNIC_NORMAL,
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   558
                           server_default=portbindings.VNIC_NORMAL)
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   559
-    profile = sa.Column(sa.String(BINDING_PROFILE_LEN), nullable=False,
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   560
-                        default='', server_default='')
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   561
+
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   562
+    if CONF.database.mysql_storage_engine == 'NDBCLUSTER':
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   563
+        profile = sa.Column(sa.Text(), nullable=False,
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   564
+                            default='', server_default='')
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   565
+    else:
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   566
+        profile = sa.Column(sa.String(BINDING_PROFILE_LEN), nullable=False,
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   567
+                            default='', server_default='')
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   568
+
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   569
     vif_type = sa.Column(sa.String(64), nullable=False)
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   570
-    vif_details = sa.Column(sa.String(4095), nullable=False, default='',
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   571
-                            server_default='')
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   572
+
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   573
+    if CONF.database.mysql_storage_engine == 'NDBCLUSTER':
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   574
+        vif_details = sa.Column(sa.Text(), nullable=False, default='',
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   575
+                                server_default='')
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   576
+    else:
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   577
+        vif_details = sa.Column(sa.String(4095), nullable=False, default='',
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   578
+                                server_default='')
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   579
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   580
     # Add a relationship to the Port model in order to instruct SQLAlchemy to
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   581
     # eagerly load port bindings
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   582
@@ -113,13 +127,25 @@ class DVRPortBinding(model_base.BASEV2):
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   583
     host = sa.Column(sa.String(255), nullable=False, primary_key=True)
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   584
     router_id = sa.Column(sa.String(36), nullable=True)
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   585
     vif_type = sa.Column(sa.String(64), nullable=False)
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   586
-    vif_details = sa.Column(sa.String(4095), nullable=False, default='',
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   587
-                            server_default='')
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   588
+
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   589
+    if CONF.database.mysql_storage_engine == 'NDBCLUSTER':
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   590
+        vif_details = sa.Column(sa.Text(), nullable=False, default='',
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   591
+                                server_default='')
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   592
+    else:
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   593
+        vif_details = sa.Column(sa.String(4095), nullable=False, default='',
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   594
+                                server_default='')
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   595
+
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   596
     vnic_type = sa.Column(sa.String(64), nullable=False,
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   597
                           default=portbindings.VNIC_NORMAL,
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   598
                           server_default=portbindings.VNIC_NORMAL)
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   599
-    profile = sa.Column(sa.String(BINDING_PROFILE_LEN), nullable=False,
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   600
-                        default='', server_default='')
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   601
+
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   602
+    if CONF.database.mysql_storage_engine == 'NDBCLUSTER':
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   603
+        profile = sa.Column(sa.Text(), nullable=False,
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   604
+                            default='', server_default='')
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   605
+    else:
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   606
+        profile = sa.Column(sa.String(BINDING_PROFILE_LEN), nullable=False,
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   607
+                            default='', server_default='')
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   608
+
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   609
     status = sa.Column(sa.String(16), nullable=False)
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   610
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   611
     # Add a relationship to the Port model in order to instruct SQLAlchemy to
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   612
--- neutron-8.1.2/neutron/tests/functional/db/test_migrations.py.orig	2016-08-25 14:47:53.221640215 -0700
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   613
+++ neutron-8.1.2/neutron/tests/functional/db/test_migrations.py	2016-08-25 14:43:31.084056418 -0700
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   614
@@ -30,6 +30,7 @@ from neutron.db.migration.models import
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   615
 from neutron.tests.common import base
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   616
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   617
 cfg.CONF.import_opt('core_plugin', 'neutron.common.config')
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   618
+CONF = cfg.CONF
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   619
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   620
 CORE_PLUGIN = 'neutron.plugins.ml2.plugin.Ml2Plugin'
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   621
 
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   622
@@ -273,7 +274,7 @@ class TestModelsMigrationsMysql(_TestMod
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   623
             self.assertTrue(len(tables) > 0,
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   624
                             "No tables found. Wrong schema?")
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   625
             res = [table for table in tables if
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   626
-                   insp.get_table_options(table)['mysql_engine'] != 'InnoDB'
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   627
+                   insp.get_table_options(table)['mysql_engine'] != CONF.database.mysql_storage_engine
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   628
                    and table != 'alembic_version']
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   629
             self.assertEqual(0, len(res), "%s non InnoDB tables created" % res)
4c1935f5ec9a 24394524 MySQL Cluster support for Cinder must be ported to Mitaka
Octave Orgeron <octave.orgeron@oracle.com>
parents:
diff changeset
   630