summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--turbo_hipster/task_plugins/real_db_upgrade/handle_results.py17
-rwxr-xr-xturbo_hipster/task_plugins/real_db_upgrade/nova_mysql_migrations.sh12
2 files changed, 24 insertions, 5 deletions
diff --git a/turbo_hipster/task_plugins/real_db_upgrade/handle_results.py b/turbo_hipster/task_plugins/real_db_upgrade/handle_results.py
index 561898f..4c02fb7 100644
--- a/turbo_hipster/task_plugins/real_db_upgrade/handle_results.py
+++ b/turbo_hipster/task_plugins/real_db_upgrade/handle_results.py
@@ -44,10 +44,21 @@ class LogParser(object):
def find_schemas(self):
"""Return a list of the schema numbers present in git."""
+
+ # TODO(mikal): once more of the cells code lands this needs to handle
+ # the API migratons as well as the cells migration. Just do cells for
+ # now though.
+ cells_migration_path = os.path.join(
+ self.gitpath,
+ 'nova/db/sqlalchemy/cell_migrations/migrate_repo/versions')
+
+ if not os.path.exists(cells_migration_path):
+ cells_migration_path = os.path.join(
+ self.gitpath,
+ 'nova/db/sqlalchemy/migrate_repo/versions')
+
return [int(MIGRATION_NUMBER_RE.findall(f)[0]) for f in os.listdir(
- os.path.join(self.gitpath,
- 'nova/db/sqlalchemy/migrate_repo/versions'))
- if MIGRATION_NUMBER_RE.match(f)]
+ cells_migration_path) if MIGRATION_NUMBER_RE.match(f)]
def process_log(self):
"""Analyse a log for errors."""
diff --git a/turbo_hipster/task_plugins/real_db_upgrade/nova_mysql_migrations.sh b/turbo_hipster/task_plugins/real_db_upgrade/nova_mysql_migrations.sh
index b5ead37..e8f9b26 100755
--- a/turbo_hipster/task_plugins/real_db_upgrade/nova_mysql_migrations.sh
+++ b/turbo_hipster/task_plugins/real_db_upgrade/nova_mysql_migrations.sh
@@ -74,9 +74,17 @@ EOF
python setup.py -q develop
python setup.py -q install
+ # Find where we store db versions
+ # TODO(mikal): note this only handles the cell db for now
+ versions_path="$GIT_REPO_PATH/nova/db/sqlalchemy/cell_migrations/migrate_repo/versions"
+ if [ ! -e $versions_path ]
+ then
+ versions_path="$GIT_REPO_PATH/nova/db/sqlalchemy/migrate_repo/versions"
+ fi
+
# Log the migrations present
echo "Migrations present:"
- ls $GIT_REPO_PATH/nova/db/sqlalchemy/migrate_repo/versions/*.py | sed 's/.*\///' | egrep "^[0-9]+_"
+ ls $versions_path/*.py | sed 's/.*\///' | egrep "^[0-9]+_"
# Flush innodb's caches
echo "Restarting mysql"
@@ -90,7 +98,7 @@ EOF
if [ "%$2%" == "%%" ]
then
- end_version=`ls $GIT_REPO_PATH/nova/db/sqlalchemy/migrate_repo/versions/*.py | sed 's/.*\///' | egrep "^[0-9]+_" | tail -1 | cut -f 1 -d "_"`
+ end_version=`ls $versions_path/*.py | sed 's/.*\///' | egrep "^[0-9]+_" | tail -1 | cut -f 1 -d "_"`
else
end_version=$2
fi