diff options
Diffstat (limited to 'cyborg_enhancement/mitaka_version/cyborg/cyborg/cmd/dbsync.py')
-rw-r--r-- | cyborg_enhancement/mitaka_version/cyborg/cyborg/cmd/dbsync.py | 91 |
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() |