sed -i -e "s/mysql:\/\/heat:\(.*\)@/mysql:\/\/heat:${MYSQL_HEAT_PW}@/" ${HEAT_CONFIG}
fi
-python -m heat.db.sync
+heat-manage db_sync
# Do a final sanity check on the database.
--- /dev/null
+#!/usr/bin/env python
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+
+# 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.
+
+
+from heat.cmd import manage
+
+manage.main()
--- /dev/null
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+
+# 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.
+
+"""
+ CLI interface for heat management.
+"""
+
+import sys
+
+from oslo.config import cfg
+
+from heat.db import api as db_api
+from heat.db import migration
+from heat.openstack.common import log
+from heat import version
+
+
+CONF = cfg.CONF
+
+
+def do_db_version():
+ """Print database's current migration level."""
+ print migration.db_version()
+
+
+def do_db_sync():
+ """
+ Place a database under migration control and upgrade,
+ creating first if necessary.
+ """
+ migration.db_sync(CONF.command.version)
+
+
+def add_command_parsers(subparsers):
+ parser = subparsers.add_parser('db_version')
+ parser.set_defaults(func=do_db_version)
+
+ parser = subparsers.add_parser('db_sync')
+ parser.set_defaults(func=do_db_sync)
+ parser.add_argument('version', nargs='?')
+ parser.add_argument('current_version', nargs='?')
+
+
+command_opt = cfg.SubCommandOpt('command',
+ title='Commands',
+ help='Available commands',
+ handler=add_command_parsers)
+
+
+def main():
+ CONF.register_cli_opt(command_opt)
+ try:
+ CONF(sys.argv[1:], project='heat',
+ version=version.version_info.version_string())
+ log.setup("heat")
+ db_api.configure()
+ except RuntimeError as e:
+ sys.exit("ERROR: %s" % e)
+
+ try:
+ CONF.command.func()
+ except Exception as e:
+ sys.exit("ERROR: %s" % e)
+++ /dev/null
-#!/usr/bin/env python
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-
-#
-# 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.
-
-import gettext
-
-import sys
-
-gettext.install('heat', unicode=1)
-
-from oslo.config import cfg
-from heat.openstack.common import log as logging
-from heat.db import api
-from heat.db import migration
-
-
-LOG = logging.getLogger(__name__)
-
-
-if __name__ == '__main__':
- cfg.CONF(project='heat', prog='heat-engine')
-
- api.configure()
-
- try:
- migration.db_sync()
- except Exception as exc:
- print >>sys.stderr, str(exc)
- sys.exit(1)
+++ /dev/null
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-
-# Copyright 2012 Red Hat, Inc.
-#
-# 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.
-
-import inspect
-
-
-class MissingArgs(Exception):
-
- def __init__(self, missing):
- self.missing = missing
-
- def __str__(self):
- if len(self.missing) == 1:
- return "An argument is missing"
- else:
- return ("%(num)d arguments are missing" %
- dict(num=len(self.missing)))
-
-
-def validate_args(fn, *args, **kwargs):
- """Check that the supplied args are sufficient for calling a function.
-
- >>> validate_args(lambda a: None)
- Traceback (most recent call last):
- ...
- MissingArgs: An argument is missing
- >>> validate_args(lambda a, b, c, d: None, 0, c=1)
- Traceback (most recent call last):
- ...
- MissingArgs: 2 arguments are missing
-
- :param fn: the function to check
- :param arg: the positional arguments supplied
- :param kwargs: the keyword arguments supplied
- """
- argspec = inspect.getargspec(fn)
-
- num_defaults = len(argspec.defaults or [])
- required_args = argspec.args[:len(argspec.args) - num_defaults]
-
- def isbound(method):
- return getattr(method, 'im_self', None) is not None
-
- if isbound(fn):
- required_args.pop(0)
-
- missing = [arg for arg in required_args if arg not in kwargs]
- missing = missing[len(args):]
- if missing:
- raise MissingArgs(missing)
module=eventlet_backdoor
module=exception
module=excutils
-module=cliutils
module=gettextutils
module=importutils
module=install_venv_common
bin/heat-db-setup
bin/heat-engine
bin/heat-keystone-setup
+ bin/heat-manage
bin/heat-watch
[global]