summaryrefslogtreecommitdiffstats
path: root/cyborg_enhancement/mitaka_version/cyborg/cyborg/cmd/dbsync.py
diff options
context:
space:
mode:
Diffstat (limited to 'cyborg_enhancement/mitaka_version/cyborg/cyborg/cmd/dbsync.py')
-rw-r--r--cyborg_enhancement/mitaka_version/cyborg/cyborg/cmd/dbsync.py91
1 files changed, 91 insertions, 0 deletions
diff --git a/cyborg_enhancement/mitaka_version/cyborg/cyborg/cmd/dbsync.py b/cyborg_enhancement/mitaka_version/cyborg/cyborg/cmd/dbsync.py
new file mode 100644
index 0000000..08facbf
--- /dev/null
+++ b/cyborg_enhancement/mitaka_version/cyborg/cyborg/cmd/dbsync.py
@@ -0,0 +1,91 @@
+# Copyright 2017 Huawei Technologies Co.,LTD.
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+"""
+Run storage database migration.
+"""
+
+import sys
+
+from oslo_config import cfg
+
+from cyborg.common.i18n import _
+from cyborg.common import service
+from cyborg.conf import CONF
+from cyborg.db import migration
+
+
+class DBCommand(object):
+
+ def upgrade(self):
+ migration.upgrade(CONF.command.revision)
+
+ def revision(self):
+ migration.revision(CONF.command.message, CONF.command.autogenerate)
+
+ def stamp(self):
+ migration.stamp(CONF.command.revision)
+
+ def version(self):
+ print(migration.version())
+
+ def create_schema(self):
+ migration.create_schema()
+
+
+def add_command_parsers(subparsers):
+ command_object = DBCommand()
+
+ parser = subparsers.add_parser(
+ 'upgrade',
+ help=_("Upgrade the database schema to the latest version. "
+ "Optionally, use --revision to specify an alembic revision "
+ "string to upgrade to."))
+ parser.set_defaults(func=command_object.upgrade)
+ parser.add_argument('--revision', nargs='?')
+
+ parser = subparsers.add_parser(
+ 'revision',
+ help=_("Create a new alembic revision. "
+ "Use --message to set the message string."))
+ parser.set_defaults(func=command_object.revision)
+ parser.add_argument('-m', '--message')
+ parser.add_argument('--autogenerate', action='store_true')
+
+ parser = subparsers.add_parser('stamp')
+ parser.set_defaults(func=command_object.stamp)
+ parser.add_argument('--revision', nargs='?')
+
+ parser = subparsers.add_parser(
+ 'version',
+ help=_("Print the current version information and exit."))
+ parser.set_defaults(func=command_object.version)
+
+ parser = subparsers.add_parser(
+ 'create_schema',
+ help=_("Create the database schema."))
+ parser.set_defaults(func=command_object.create_schema)
+
+
+def main():
+ command_opt = cfg.SubCommandOpt('command',
+ title='Command',
+ help=_('Available commands'),
+ handler=add_command_parsers)
+
+ CONF.register_cli_opt(command_opt)
+
+ service.prepare_service(sys.argv)
+ CONF.command.func()