diff options
author | RHE <rebirthmonkey@gmail.com> | 2017-11-24 13:54:26 +0100 |
---|---|---|
committer | RHE <rebirthmonkey@gmail.com> | 2017-11-24 13:54:26 +0100 |
commit | 920a49cfa055733d575282973e23558c33087a4a (patch) | |
tree | d371dab34efa5028600dad2e7ca58063626e7ba4 /keystone-moon/tools | |
parent | ef3eefca70d8abb4a00dafb9419ad32738e934b2 (diff) |
remove keystone-moon
Change-Id: I80d7c9b669f19d5f6607e162de8e0e55c2f80fdd
Signed-off-by: RHE <rebirthmonkey@gmail.com>
Diffstat (limited to 'keystone-moon/tools')
-rwxr-xr-x | keystone-moon/tools/colorizer.py | 333 | ||||
-rwxr-xr-x | keystone-moon/tools/convert_to_sqlite.sh | 71 | ||||
-rw-r--r-- | keystone-moon/tools/install_venv.py | 72 | ||||
-rw-r--r-- | keystone-moon/tools/install_venv_common.py | 172 | ||||
-rwxr-xr-x | keystone-moon/tools/pretty_tox.sh | 12 | ||||
-rwxr-xr-x | keystone-moon/tools/pretty_tox_py3.sh | 12 | ||||
-rwxr-xr-x | keystone-moon/tools/sample_data.sh | 273 | ||||
-rwxr-xr-x | keystone-moon/tools/with_venv.sh | 7 |
8 files changed, 0 insertions, 952 deletions
diff --git a/keystone-moon/tools/colorizer.py b/keystone-moon/tools/colorizer.py deleted file mode 100755 index a16c620c..00000000 --- a/keystone-moon/tools/colorizer.py +++ /dev/null @@ -1,333 +0,0 @@ -#!/usr/bin/env python - -# Copyright (c) 2013, Nebula, Inc. -# Copyright 2010 United States Government as represented by the -# Administrator of the National Aeronautics and Space Administration. -# 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. -# -# Colorizer Code is borrowed from Twisted: -# Copyright (c) 2001-2010 Twisted Matrix Laboratories. -# -# Permission is hereby granted, free of charge, to any person obtaining -# a copy of this software and associated documentation files (the -# "Software"), to deal in the Software without restriction, including -# without limitation the rights to use, copy, modify, merge, publish, -# distribute, sublicense, and/or sell copies of the Software, and to -# permit persons to whom the Software is furnished to do so, subject to -# the following conditions: -# -# The above copyright notice and this permission notice shall be -# included in all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -"""Display a subunit stream through a colorized unittest test runner.""" - -import heapq -import sys -import unittest - -import six -import subunit -import testtools - - -class _AnsiColorizer(object): - """Colorizer allows callers to write text in a particular color. - - A colorizer is an object that loosely wraps around a stream, allowing - callers to write text to the stream in a particular color. - - Colorizer classes must implement C{supported()} and C{write(text, color)}. - """ - _colors = dict(black=30, red=31, green=32, yellow=33, - blue=34, magenta=35, cyan=36, white=37) - - def __init__(self, stream): - self.stream = stream - - def supported(cls, stream=sys.stdout): - """Check is the current platform supports coloring terminal output. - - A class method that returns True if the current platform supports - coloring terminal output using this method. Returns False otherwise. - """ - if not stream.isatty(): - return False # auto color only on TTYs - try: - import curses - except ImportError: - return False - else: - try: - try: - return curses.tigetnum("colors") > 2 - except curses.error: - curses.setupterm() - return curses.tigetnum("colors") > 2 - except Exception: - # guess false in case of error - return False - supported = classmethod(supported) - - def write(self, text, color): - """Write the given text to the stream in the given color. - - @param text: Text to be written to the stream. - - @param color: A string label for a color. e.g. 'red', 'white'. - """ - color = self._colors[color] - self.stream.write('\x1b[%s;1m%s\x1b[0m' % (color, text)) - - -class _Win32Colorizer(object): - """See _AnsiColorizer docstring.""" - def __init__(self, stream): - import win32console - red, green, blue, bold = (win32console.FOREGROUND_RED, - win32console.FOREGROUND_GREEN, - win32console.FOREGROUND_BLUE, - win32console.FOREGROUND_INTENSITY) - self.stream = stream - self.screenBuffer = win32console.GetStdHandle( - win32console.STD_OUT_HANDLE) - self._colors = { - 'normal': red | green | blue, - 'red': red | bold, - 'green': green | bold, - 'blue': blue | bold, - 'yellow': red | green | bold, - 'magenta': red | blue | bold, - 'cyan': green | blue | bold, - 'white': red | green | blue | bold, - } - - def supported(cls, stream=sys.stdout): - try: - import win32console - screenBuffer = win32console.GetStdHandle( - win32console.STD_OUT_HANDLE) - except ImportError: - return False - import pywintypes - try: - screenBuffer.SetConsoleTextAttribute( - win32console.FOREGROUND_RED | - win32console.FOREGROUND_GREEN | - win32console.FOREGROUND_BLUE) - except pywintypes.error: - return False - else: - return True - supported = classmethod(supported) - - def write(self, text, color): - color = self._colors[color] - self.screenBuffer.SetConsoleTextAttribute(color) - self.stream.write(text) - self.screenBuffer.SetConsoleTextAttribute(self._colors['normal']) - - -class _NullColorizer(object): - """See _AnsiColorizer docstring.""" - def __init__(self, stream): - self.stream = stream - - def supported(cls, stream=sys.stdout): - return True - supported = classmethod(supported) - - def write(self, text, color): - self.stream.write(text) - - -def get_elapsed_time_color(elapsed_time): - if elapsed_time > 1.0: - return 'red' - elif elapsed_time > 0.25: - return 'yellow' - else: - return 'green' - - -class OpenStackTestResult(testtools.TestResult): - def __init__(self, stream, descriptions, verbosity): - super(OpenStackTestResult, self).__init__() - self.stream = stream - self.showAll = verbosity > 1 - self.num_slow_tests = 10 - self.slow_tests = [] # this is a fixed-sized heap - self.colorizer = None - # NOTE(vish): reset stdout for the terminal check - stdout = sys.stdout - sys.stdout = sys.__stdout__ - for colorizer in [_Win32Colorizer, _AnsiColorizer, _NullColorizer]: - if colorizer.supported(): - self.colorizer = colorizer(self.stream) - break - sys.stdout = stdout - self.start_time = None - self.last_time = {} - self.results = {} - self.last_written = None - - def _writeElapsedTime(self, elapsed): - color = get_elapsed_time_color(elapsed) - self.colorizer.write(" %.2f" % elapsed, color) - - def _addResult(self, test, *args): - try: - name = test.id() - except AttributeError: - name = 'Unknown.unknown' - test_class, test_name = name.rsplit('.', 1) - - elapsed = (self._now() - self.start_time).total_seconds() - item = (elapsed, test_class, test_name) - if len(self.slow_tests) >= self.num_slow_tests: - heapq.heappushpop(self.slow_tests, item) - else: - heapq.heappush(self.slow_tests, item) - - self.results.setdefault(test_class, []) - self.results[test_class].append((test_name, elapsed) + args) - self.last_time[test_class] = self._now() - self.writeTests() - - def _writeResult(self, test_name, elapsed, long_result, color, - short_result, success): - if self.showAll: - self.stream.write(' %s' % str(test_name).ljust(66)) - self.colorizer.write(long_result, color) - if success: - self._writeElapsedTime(elapsed) - self.stream.writeln() - else: - self.colorizer.write(short_result, color) - - def addSuccess(self, test): - super(OpenStackTestResult, self).addSuccess(test) - self._addResult(test, 'OK', 'green', '.', True) - - def addFailure(self, test, err): - if test.id() == 'process-returncode': - return - super(OpenStackTestResult, self).addFailure(test, err) - self._addResult(test, 'FAIL', 'red', 'F', False) - - def addError(self, test, err): - super(OpenStackTestResult, self).addFailure(test, err) - self._addResult(test, 'ERROR', 'red', 'E', False) - - def addSkip(self, test, reason=None, details=None): - super(OpenStackTestResult, self).addSkip(test, reason, details) - self._addResult(test, 'SKIP', 'blue', 'S', True) - - def startTest(self, test): - self.start_time = self._now() - super(OpenStackTestResult, self).startTest(test) - - def writeTestCase(self, cls): - if not self.results.get(cls): - return - if cls != self.last_written: - self.colorizer.write(cls, 'white') - self.stream.writeln() - for result in self.results[cls]: - self._writeResult(*result) - del self.results[cls] - self.stream.flush() - self.last_written = cls - - def writeTests(self): - time = self.last_time.get(self.last_written, self._now()) - if not self.last_written or (self._now() - time).total_seconds() > 2.0: - diff = 3.0 - while diff > 2.0: - classes = self.results.keys() - oldest = min(classes, key=lambda x: self.last_time[x]) - diff = (self._now() - self.last_time[oldest]).total_seconds() - self.writeTestCase(oldest) - else: - self.writeTestCase(self.last_written) - - def done(self): - self.stopTestRun() - - def stopTestRun(self): - for cls in list(six.iterkeys(self.results)): - self.writeTestCase(cls) - self.stream.writeln() - self.writeSlowTests() - - def writeSlowTests(self): - # Pare out 'fast' tests - slow_tests = [item for item in self.slow_tests - if get_elapsed_time_color(item[0]) != 'green'] - if slow_tests: - slow_total_time = sum(item[0] for item in slow_tests) - slow = ("Slowest %i tests took %.2f secs:" - % (len(slow_tests), slow_total_time)) - self.colorizer.write(slow, 'yellow') - self.stream.writeln() - last_cls = None - # sort by name - for elapsed, cls, name in sorted(slow_tests, - key=lambda x: x[1] + x[2]): - if cls != last_cls: - self.colorizer.write(cls, 'white') - self.stream.writeln() - last_cls = cls - self.stream.write(' %s' % str(name).ljust(68)) - self._writeElapsedTime(elapsed) - self.stream.writeln() - - def printErrors(self): - if self.showAll: - self.stream.writeln() - self.printErrorList('ERROR', self.errors) - self.printErrorList('FAIL', self.failures) - - def printErrorList(self, flavor, errors): - for test, err in errors: - self.colorizer.write("=" * 70, 'red') - self.stream.writeln() - self.colorizer.write(flavor, 'red') - self.stream.writeln(": %s" % test.id()) - self.colorizer.write("-" * 70, 'red') - self.stream.writeln() - self.stream.writeln("%s" % err) - - -test = subunit.ProtocolTestCase(sys.stdin, passthrough=None) - -if sys.version_info[0:2] <= (2, 6): - runner = unittest.TextTestRunner(verbosity=2) -else: - runner = unittest.TextTestRunner(verbosity=2, - resultclass=OpenStackTestResult) - -if runner.run(test).wasSuccessful(): - exit_code = 0 -else: - exit_code = 1 -sys.exit(exit_code) diff --git a/keystone-moon/tools/convert_to_sqlite.sh b/keystone-moon/tools/convert_to_sqlite.sh deleted file mode 100755 index feb3202f..00000000 --- a/keystone-moon/tools/convert_to_sqlite.sh +++ /dev/null @@ -1,71 +0,0 @@ -#!/bin/sh - -# ================================================================ -# -# Convert a mysql database dump into something sqlite3 understands. -# -# Adapted from -# http://stackoverflow.com/questions/489277/script-to-convert-mysql-dump-sql-file-into-format-that-can-be-imported-into-sqlit -# -# (c) 2010 Martin Czygan <martin.czygan@gmail.com> -# -# ================================================================ - -if [ "$#" -lt 1 ]; then - echo "Usage: $0 <dumpname>" - exit -fi - -SRC=$1 -DST=$1.sqlite3.sql -DB=$1.sqlite3.db -ERR=$1.sqlite3.err - -cat $SRC | -grep -v ' KEY "' | -grep -v ' KEY `' | -grep -v ' UNIQUE KEY "' | -grep -v ' UNIQUE KEY `' | -grep -v ' PRIMARY KEY ' | - -sed 's/ENGINE=MyISAM/ /g' | -sed 's/DEFAULT/ /g' | -sed 's/CHARSET=[a-zA-Z0-9]*/ /g' | -sed 's/AUTO_INCREMENT=[0-9]*/ /g' | - -sed 's/\\r\\n/\\n/g' | -sed 's/\\"/"/g' | -sed '/^SET/d' | -sed 's/ unsigned / /g' | -sed 's/ auto_increment/ primary key autoincrement/g' | -sed 's/ AUTO_INCREMENT/ primary key autoincrement/g' | -sed 's/ smallint([0-9]*) / integer /g' | -sed 's/ tinyint([0-9]*) / integer /g' | -sed 's/ int([0-9]*) / integer /g' | -sed 's/ character set [^ ]* / /g' | -sed 's/ enum([^)]*) / varchar(255) /g' | -sed 's/ on update [^,]*//g' | -sed 's/UNLOCK TABLES;//g' | -sed 's/LOCK TABLES [^;]*;//g' | -perl -e 'local $/;$_=<>;s/,\n\)/\n\)/gs;print "begin;\n";print;print "commit;\n"' | -perl -pe ' - if (/^(INSERT.+?)\(/) { - $a=$1; - s/\\'\''/'\'\''/g; - s/\\n/\n/g; - s/\),\(/\);\n$a\(/g; - } - ' > $DST - -cat $DST | sqlite3 $DB > $ERR - -ERRORS=`cat $ERR | wc -l` - -if [ "$ERRORS" -eq "0" ]; then - echo "Conversion completed without error. Your db is ready under: $DB" - echo "\$ sqlite3 $DB" - rm -f $ERR -else - echo "There were errors during conversion. \ - Please review $ERR and $DST for details." -fi diff --git a/keystone-moon/tools/install_venv.py b/keystone-moon/tools/install_venv.py deleted file mode 100644 index e01ae3f0..00000000 --- a/keystone-moon/tools/install_venv.py +++ /dev/null @@ -1,72 +0,0 @@ -# Copyright 2013 IBM Corp. -# Copyright 2012 OpenStack Foundation -# Copyright 2010 United States Government as represented by the -# Administrator of the National Aeronautics and Space Administration. -# 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. - -""" -virtualenv installation script -""" - -import os -import sys - -import install_venv_common as install_venv - - -def print_help(): - help = """ - Keystone development environment setup is complete. - - Keystone development uses virtualenv to track and manage Python - dependencies while in development and testing. - - To activate the Keystone virtualenv for the extent of your current shell - session you can run: - - $ source .venv/bin/activate - - Or, if you prefer, you can run commands in the virtualenv on a case by case - basis by running: - - $ tools/with_venv.sh <your command> - - Also, make test will automatically use the virtualenv. - """ - print help - - -def main(argv): - root = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) - venv = os.path.join(root, '.venv') - pip_requires = os.path.join(root, 'requirements.txt') - test_requires = os.path.join(root, 'test-requirements.txt') - py_version = "python%s.%s" % (sys.version_info[0], sys.version_info[1]) - project = 'Keystone' - install = install_venv.InstallVenv(root, venv, pip_requires, test_requires, - py_version, project) - options = install.parse_args(argv) - install.check_python_version() - install.check_dependencies() - install.create_virtualenv(no_site_packages=options.no_site_packages) - install.install_dependencies() - install.run_command([os.path.join(venv, 'bin/python'), - 'setup.py', 'develop']) - print_help() - - -if __name__ == '__main__': - main(sys.argv) diff --git a/keystone-moon/tools/install_venv_common.py b/keystone-moon/tools/install_venv_common.py deleted file mode 100644 index e279159a..00000000 --- a/keystone-moon/tools/install_venv_common.py +++ /dev/null @@ -1,172 +0,0 @@ -# Copyright 2013 OpenStack Foundation -# Copyright 2013 IBM Corp. -# -# 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. - -"""Provides methods needed by installation script for OpenStack development -virtual environments. - -Since this script is used to bootstrap a virtualenv from the system's Python -environment, it should be kept strictly compatible with Python 2.6. - -Synced in from openstack-common -""" - -from __future__ import print_function - -import optparse -import os -import subprocess -import sys - - -class InstallVenv(object): - - def __init__(self, root, venv, requirements, - test_requirements, py_version, - project): - self.root = root - self.venv = venv - self.requirements = requirements - self.test_requirements = test_requirements - self.py_version = py_version - self.project = project - - def die(self, message, *args): - print(message % args, file=sys.stderr) - sys.exit(1) - - def check_python_version(self): - if sys.version_info < (2, 6): - self.die("Need Python Version >= 2.6") - - def run_command_with_code(self, cmd, redirect_output=True, - check_exit_code=True): - """Runs a command in an out-of-process shell. - - Returns the output of that command. Working directory is self.root. - """ - if redirect_output: - stdout = subprocess.PIPE - else: - stdout = None - - proc = subprocess.Popen(cmd, cwd=self.root, stdout=stdout) - output = proc.communicate()[0] - if check_exit_code and proc.returncode != 0: - self.die('Command "%s" failed.\n%s', ' '.join(cmd), output) - return (output, proc.returncode) - - def run_command(self, cmd, redirect_output=True, check_exit_code=True): - return self.run_command_with_code(cmd, redirect_output, - check_exit_code)[0] - - def get_distro(self): - if (os.path.exists('/etc/fedora-release') or - os.path.exists('/etc/redhat-release')): - return Fedora( - self.root, self.venv, self.requirements, - self.test_requirements, self.py_version, self.project) - else: - return Distro( - self.root, self.venv, self.requirements, - self.test_requirements, self.py_version, self.project) - - def check_dependencies(self): - self.get_distro().install_virtualenv() - - def create_virtualenv(self, no_site_packages=True): - """Creates the virtual environment and installs PIP. - - Creates the virtual environment and installs PIP only into the - virtual environment. - """ - if not os.path.isdir(self.venv): - print('Creating venv...', end=' ') - if no_site_packages: - self.run_command(['virtualenv', '-q', '--no-site-packages', - self.venv]) - else: - self.run_command(['virtualenv', '-q', self.venv]) - print('done.') - else: - print("venv already exists...") - pass - - def pip_install(self, *args): - self.run_command(['tools/with_venv.sh', - 'pip', 'install', '--upgrade'] + list(args), - redirect_output=False) - - def install_dependencies(self): - print('Installing dependencies with pip (this can take a while)...') - - # First things first, make sure our venv has the latest pip and - # setuptools and pbr - self.pip_install('pip>=1.4') - self.pip_install('setuptools') - self.pip_install('pbr') - - self.pip_install('-r', self.requirements, '-r', self.test_requirements) - - def parse_args(self, argv): - """Parses command-line arguments.""" - parser = optparse.OptionParser() - parser.add_option('-n', '--no-site-packages', - action='store_true', - help="Do not inherit packages from global Python " - "install.") - return parser.parse_args(argv[1:])[0] - - -class Distro(InstallVenv): - - def check_cmd(self, cmd): - return bool(self.run_command(['which', cmd], - check_exit_code=False).strip()) - - def install_virtualenv(self): - if self.check_cmd('virtualenv'): - return - - if self.check_cmd('easy_install'): - print('Installing virtualenv via easy_install...', end=' ') - if self.run_command(['easy_install', 'virtualenv']): - print('Succeeded') - return - else: - print('Failed') - - self.die('ERROR: virtualenv not found.\n\n%s development' - ' requires virtualenv, please install it using your' - ' favorite package management tool' % self.project) - - -class Fedora(Distro): - """This covers all Fedora-based distributions. - - Includes: Fedora, RHEL, CentOS, Scientific Linux - """ - - def check_pkg(self, pkg): - return self.run_command_with_code(['rpm', '-q', pkg], - check_exit_code=False)[1] == 0 - - def install_virtualenv(self): - if self.check_cmd('virtualenv'): - return - - if not self.check_pkg('python-virtualenv'): - self.die("Please install 'python-virtualenv'.") - - super(Fedora, self).install_virtualenv() diff --git a/keystone-moon/tools/pretty_tox.sh b/keystone-moon/tools/pretty_tox.sh deleted file mode 100755 index 01b67a8d..00000000 --- a/keystone-moon/tools/pretty_tox.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/env bash - -set -o pipefail - -TESTRARGS=$1 -python setup.py testr --testr-args="--subunit $TESTRARGS" | subunit-trace -f -retval=$? -# NOTE(mtreinish) The pipe above would eat the slowest display from pbr's testr -# wrapper so just manually print the slowest tests. -echo -e "\nSlowest Tests:\n" -testr slowest -exit $retval diff --git a/keystone-moon/tools/pretty_tox_py3.sh b/keystone-moon/tools/pretty_tox_py3.sh deleted file mode 100755 index 9bb72bb8..00000000 --- a/keystone-moon/tools/pretty_tox_py3.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/env bash - -set -o pipefail - -TESTRARGS=`python -c 'print ("^((?!%s).)*$" % "|".join(f.strip() for f in open("tests-py3-blacklist.txt")))'` -python setup.py testr --testr-args="--subunit $TESTRARGS" | subunit-trace -f -retval=$? -# NOTE(mtreinish) The pipe above would eat the slowest display from pbr's testr -# wrapper so just manually print the slowest tests. -echo -e "\nSlowest Tests:\n" -testr slowest -exit $retval diff --git a/keystone-moon/tools/sample_data.sh b/keystone-moon/tools/sample_data.sh deleted file mode 100755 index ce407431..00000000 --- a/keystone-moon/tools/sample_data.sh +++ /dev/null @@ -1,273 +0,0 @@ -#!/usr/bin/env bash - -# Copyright 2013 OpenStack Foundation -# -# 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. - -# Sample initial data for Keystone using python-openstackclient -# -# This script is based on the original DevStack keystone_data.sh script. -# -# It demonstrates how to bootstrap Keystone with an administrative user -# using the OS_TOKEN and OS_URL environment variables and the administrative -# API. It will get the admin_token (OS_TOKEN) and admin_port from -# keystone.conf if available. -# -# Disable creation of endpoints by setting DISABLE_ENDPOINTS environment variable. -# Use this with the Catalog Templated backend. -# -# A EC2-compatible credential is created for the admin user and -# placed in etc/ec2rc. -# -# Tenant User Roles -# ------------------------------------------------------- -# demo admin admin -# service glance service -# service nova service -# service ec2 service -# service swift service -# service neutron service - -# By default, passwords used are those in the OpenStack Install and Deploy Manual. -# One can override these (publicly known, and hence, insecure) passwords by setting the appropriate -# environment variables. A common default password for all the services can be used by -# setting the "SERVICE_PASSWORD" environment variable. - -# Test to verify that the openstackclient is installed, if not exit -type openstack >/dev/null 2>&1 || { - echo >&2 "openstackclient is not installed. Please install it to use this script. Aborting." - exit 1 - } - -ADMIN_PASSWORD=${ADMIN_PASSWORD:-secrete} -NOVA_PASSWORD=${NOVA_PASSWORD:-${SERVICE_PASSWORD:-nova}} -GLANCE_PASSWORD=${GLANCE_PASSWORD:-${SERVICE_PASSWORD:-glance}} -EC2_PASSWORD=${EC2_PASSWORD:-${SERVICE_PASSWORD:-ec2}} -SWIFT_PASSWORD=${SWIFT_PASSWORD:-${SERVICE_PASSWORD:-swiftpass}} -NEUTRON_PASSWORD=${NEUTRON_PASSWORD:-${SERVICE_PASSWORD:-neutron}} - -CONTROLLER_PUBLIC_ADDRESS=${CONTROLLER_PUBLIC_ADDRESS:-localhost} -CONTROLLER_ADMIN_ADDRESS=${CONTROLLER_ADMIN_ADDRESS:-localhost} -CONTROLLER_INTERNAL_ADDRESS=${CONTROLLER_INTERNAL_ADDRESS:-localhost} - -TOOLS_DIR=$(cd $(dirname "$0") && pwd) -KEYSTONE_CONF=${KEYSTONE_CONF:-/etc/keystone/keystone.conf} -if [[ -r "$KEYSTONE_CONF" ]]; then - EC2RC="$(dirname "$KEYSTONE_CONF")/ec2rc" -elif [[ -r "$TOOLS_DIR/../etc/keystone.conf" ]]; then - # assume git checkout - KEYSTONE_CONF="$TOOLS_DIR/../etc/keystone.conf" - EC2RC="$TOOLS_DIR/../etc/ec2rc" -else - KEYSTONE_CONF="" - EC2RC="ec2rc" -fi - -# Extract some info from Keystone's configuration file -if [[ -r "$KEYSTONE_CONF" ]]; then - CONFIG_SERVICE_TOKEN=$(sed 's/[[:space:]]//g' $KEYSTONE_CONF | grep ^admin_token= | cut -d'=' -f2) - if [[ -z "${CONFIG_SERVICE_TOKEN}" ]]; then - # default config options are commented out, so lets try those - CONFIG_SERVICE_TOKEN=$(sed 's/[[:space:]]//g' $KEYSTONE_CONF | grep ^\#admin_token= | cut -d'=' -f2) - fi - CONFIG_ADMIN_PORT=$(sed 's/[[:space:]]//g' $KEYSTONE_CONF | grep ^admin_port= | cut -d'=' -f2) - if [[ -z "${CONFIG_ADMIN_PORT}" ]]; then - # default config options are commented out, so lets try those - CONFIG_ADMIN_PORT=$(sed 's/[[:space:]]//g' $KEYSTONE_CONF | grep ^\#admin_port= | cut -d'=' -f2) - fi -fi - -export OS_TOKEN=${OS_TOKEN:-$CONFIG_SERVICE_TOKEN} -if [[ -z "$OS_TOKEN" ]]; then - echo "No service token found." - echo "Set OS_TOKEN manually from keystone.conf admin_token." - exit 1 -fi - -export OS_URL=${OS_URL:-http://$CONTROLLER_PUBLIC_ADDRESS:${CONFIG_ADMIN_PORT:-35357}/v2.0} - -function get_id () { - echo `"$@" | grep ' id ' | awk '{print $4}'` -} - -# -# Roles -# - -openstack role create admin - -openstack role create service - -# -# Default tenant -# -openstack project create demo \ - --description "Default Tenant" - -openstack user create admin --project demo \ - --password "${ADMIN_PASSWORD}" - -openstack role add --user admin \ - --project demo\ - admin - -# -# Service tenant -# -openstack project create service \ - --description "Service Tenant" - -openstack user create glance --project service\ - --password "${GLANCE_PASSWORD}" - -openstack role add --user glance \ - --project service \ - service - -openstack user create nova --project service\ - --password "${NOVA_PASSWORD}" - -openstack role add --user nova \ - --project service \ - service - -openstack user create ec2 --project service \ - --password "${EC2_PASSWORD}" - -openstack role add --user ec2 \ - --project service \ - service - -openstack user create swift --project service \ - --password "${SWIFT_PASSWORD}" \ - -openstack role add --user swift \ - --project service \ - service - -openstack user create neutron --project service \ - --password "${NEUTRON_PASSWORD}" \ - -openstack role add --user neutron \ - --project service \ - service - -# -# Keystone service -# -openstack service create --name keystone \ - --description "Keystone Identity Service" \ - identity -if [[ -z "$DISABLE_ENDPOINTS" ]]; then - openstack endpoint create --region RegionOne \ - --publicurl "http://$CONTROLLER_PUBLIC_ADDRESS:\$(public_port)s/v2.0" \ - --adminurl "http://$CONTROLLER_ADMIN_ADDRESS:\$(admin_port)s/v2.0" \ - --internalurl "http://$CONTROLLER_INTERNAL_ADDRESS:\$(public_port)s/v2.0" \ - keystone -fi - -# -# Nova service -# -openstack service create --name=nova \ - --description="Nova Compute Service" \ - compute -if [[ -z "$DISABLE_ENDPOINTS" ]]; then - openstack endpoint create --region RegionOne \ - --publicurl "http://$CONTROLLER_PUBLIC_ADDRESS:8774/v2/\$(tenant_id)s" \ - --adminurl "http://$CONTROLLER_ADMIN_ADDRESS:8774/v2/\$(tenant_id)s" \ - --internalurl "http://$CONTROLLER_INTERNAL_ADDRESS:8774/v2/\$(tenant_id)s" \ - nova -fi - -# -# Volume service -# -openstack service create --name=volume \ - --description="Cinder Volume Service" \ - volume -if [[ -z "$DISABLE_ENDPOINTS" ]]; then - openstack endpoint create --region RegionOne \ - --publicurl "http://$CONTROLLER_PUBLIC_ADDRESS:8776/v1/\$(tenant_id)s" \ - --adminurl "http://$CONTROLLER_ADMIN_ADDRESS:8776/v1/\$(tenant_id)s" \ - --internalurl "http://$CONTROLLER_INTERNAL_ADDRESS:8776/v1/\$(tenant_id)s" \ - volume -fi - -# -# Image service -# -openstack service create --name=glance \ - --description="Glance Image Service" \ - image -if [[ -z "$DISABLE_ENDPOINTS" ]]; then - openstack endpoint create --region RegionOne \ - --publicurl "http://$CONTROLLER_PUBLIC_ADDRESS:9292" \ - --adminurl "http://$CONTROLLER_ADMIN_ADDRESS:9292" \ - --internalurl "http://$CONTROLLER_INTERNAL_ADDRESS:9292" \ - glance -fi - -# -# EC2 service -# -openstack service create --name=ec2 \ - --description="EC2 Compatibility Layer" \ - ec2 -if [[ -z "$DISABLE_ENDPOINTS" ]]; then - openstack endpoint create --region RegionOne \ - --publicurl "http://$CONTROLLER_PUBLIC_ADDRESS:8773/services/Cloud" \ - --adminurl "http://$CONTROLLER_ADMIN_ADDRESS:8773/services/Admin" \ - --internalurl "http://$CONTROLLER_INTERNAL_ADDRESS:8773/services/Cloud" \ - ec2 -fi - -# -# Swift service -# -openstack service create --name=swift \ - --description="Swift Object Storage Service" \ - object-store -if [[ -z "$DISABLE_ENDPOINTS" ]]; then - openstack endpoint create --region RegionOne \ - --publicurl "http://$CONTROLLER_PUBLIC_ADDRESS:8080/v1/AUTH_\$(tenant_id)s" \ - --adminurl "http://$CONTROLLER_ADMIN_ADDRESS:8080/v1" \ - --internalurl "http://$CONTROLLER_INTERNAL_ADDRESS:8080/v1/AUTH_\$(tenant_id)s" \ - swift -fi - -# -# Neutron service -# -openstack service create --name=neutron \ - --description="Neutron Network Service" \ - network -if [[ -z "$DISABLE_ENDPOINTS" ]]; then - openstack endpoint create --region RegionOne \ - --publicurl "http://$CONTROLLER_PUBLIC_ADDRESS:9696" \ - --adminurl "http://$CONTROLLER_ADMIN_ADDRESS:9696" \ - --internalurl "http://$CONTROLLER_INTERNAL_ADDRESS:9696" \ - neutron -fi - -# create ec2 creds and parse the secret and access key returned -ADMIN_USER=$(get_id openstack user show admin) -RESULT=$(openstack ec2 credentials create --project service --user $ADMIN_USER) -ADMIN_ACCESS=`echo "$RESULT" | grep access | awk '{print $4}'` -ADMIN_SECRET=`echo "$RESULT" | grep secret | awk '{print $4}'` - -# write the secret and access to ec2rc -cat > $EC2RC <<EOF -ADMIN_ACCESS=$ADMIN_ACCESS -ADMIN_SECRET=$ADMIN_SECRET -EOF diff --git a/keystone-moon/tools/with_venv.sh b/keystone-moon/tools/with_venv.sh deleted file mode 100755 index 7303990b..00000000 --- a/keystone-moon/tools/with_venv.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash -TOOLS_PATH=${TOOLS_PATH:-$(dirname $0)} -VENV_PATH=${VENV_PATH:-${TOOLS_PATH}} -VENV_DIR=${VENV_NAME:-/../.venv} -TOOLS=${TOOLS_PATH} -VENV=${VENV:-${VENV_PATH}/${VENV_DIR}} -source ${VENV}/bin/activate && "$@" |