21150246 MySQL needs more time to come online s11-update
authorDrew Fisher <drew.fisher@oracle.com>
Wed, 27 May 2015 14:16:57 -0700
branchs11-update
changeset 4364 7e498582e773
parent 4363 0a20d39fb017
child 4368 0e73d8e413e3
21150246 MySQL needs more time to come online
components/openstack/common/files/openstack_common.py
components/openstack/neutron/files/evs/migrate/evs-neutron-migration.py
--- a/components/openstack/common/files/openstack_common.py	Wed May 27 09:23:13 2015 -0700
+++ b/components/openstack/common/files/openstack_common.py	Wed May 27 14:16:57 2015 -0700
@@ -69,7 +69,7 @@
 
     import MySQLdb
 
-    for _none in range(5):
+    for _none in range(60):
         try:
             db = MySQLdb.connect(host=engine.url.host,
                                  user=engine.url.username,
--- a/components/openstack/neutron/files/evs/migrate/evs-neutron-migration.py	Wed May 27 09:23:13 2015 -0700
+++ b/components/openstack/neutron/files/evs/migrate/evs-neutron-migration.py	Wed May 27 14:16:57 2015 -0700
@@ -22,25 +22,22 @@
 #
 
 import ConfigParser
+import time
+
+from oslo.config import cfg
+from oslo.db import exception as excp
+from oslo.db import options as db_options
+import rad.bindings.com.oracle.solaris.rad.evscntl as evsc
 import rad.connect as radcon
-import rad.bindings.com.oracle.solaris.rad.evscntl as evsc
+import sqlalchemy as sa
+from sqlalchemy import MetaData, sql
+from sqlalchemy.orm import sessionmaker
+from sqlalchemy.schema import DropConstraint
 
 from neutron import context as ctx
-from neutron.db import common_db_mixin
-from neutron.db import api as db
-from neutron.db import model_base
+from neutron.db import common_db_mixin, model_base
 from neutron.plugins.evs.migrate import havana_api
 
-import sqlalchemy as sa
-from sqlalchemy import MetaData
-from sqlalchemy.orm import sessionmaker
-from sqlalchemy.schema import DropConstraint
-from sqlalchemy import sql
-
-from oslo.config import cfg
-from oslo.db import options as db_options
-from oslo.db import exception as excp
-
 
 def create_db_network(nw, engine, ext_ro):
     ''' Method for creating networks table in the neutron-server DB
@@ -54,7 +51,18 @@
     from neutron.db import db_base_plugin_v2
     from neutron.db import external_net_db as ext_net
     model_base.BASEV2.metadata.bind = engine
-    model_base.BASEV2.metadata.create_all(engine)
+    for _none in range(60):
+        try:
+            model_base.BASEV2.metadata.create_all(engine)
+            break
+        except sa.exc.OperationalError as err:
+            # mysql is not ready. sleep for 2 more seconds
+            time.sleep(2)
+    else:
+        print "Unable to connect to MySQL:  %s" % err
+        print ("Please verify MySQL is properly configured and online "
+               "before using svcadm(1M) to clear this service.")
+        raise RuntimeError
     ctxt = ctx.get_admin_context()
     inst = db_base_plugin_v2.NeutronDbPluginV2()
     dup = False