From bd8d795124625e86ed4287a739101d28e6207eaf Mon Sep 17 00:00:00 2001 From: Suhail Syed Date: Mon, 24 Aug 2015 15:58:33 -0700 Subject: [PATCH] Modified build.py to run from installed location Modified build.py to run from installed location or developer environment. To run from development environment, run the command: sudo pip install -e . Additionally, remove a TODO that has been done Co-Authored-By: Sam Yaple Change-Id: I922696ba439da2c9747e65cddcba47203e54d220 Implements: blueprint python-package --- kolla/cmd/build.py | 24 +++++++++++++++++++----- tools/build.py | 1 + 2 files changed, 20 insertions(+), 5 deletions(-) create mode 120000 tools/build.py diff --git a/kolla/cmd/build.py b/kolla/cmd/build.py index 4f571c7905..243ec77f74 100755 --- a/kolla/cmd/build.py +++ b/kolla/cmd/build.py @@ -12,7 +12,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -# TODO(SamYaple): Single image building w/ optional parent building # TODO(jpeeler): Add clean up handler for SIGINT import argparse @@ -41,6 +40,10 @@ LOG.setLevel(logging.INFO) signal.signal(signal.SIGINT, signal.SIG_DFL) +class KollaDirNotFoundException(Exception): + pass + + class WorkerThread(Thread): def __init__(self, queue, args): @@ -189,9 +192,20 @@ def argParser(): class KollaWorker(object): def __init__(self, args): - self.kolla_dir = os.path.join(sys.path[0], '..') - self.images_dir = os.path.join(self.kolla_dir, 'docker') - self.templates_dir = os.path.join(self.kolla_dir, 'docker_templates') + def find_base_dir(): + if os.path.basename(sys.path[0]) == 'tests': + return os.path.join(sys.path[0], '..') + if os.path.basename(sys.path[0]) == 'cmd': + return os.path.join(sys.path[0], '..', '..') + if os.path.basename(sys.path[0]) == 'bin': + return '/usr/share/kolla' + raise KollaDirNotFoundException( + 'I do not know where your Kolla directory is' + ) + + self.base_dir = find_base_dir() + self.images_dir = os.path.join(self.base_dir, 'docker') + self.templates_dir = os.path.join(self.base_dir, 'docker_templates') self.namespace = args['namespace'] self.template = args['template'] self.base = args['base'] @@ -200,7 +214,7 @@ class KollaWorker(object): self.tag = args['tag'] self.prefix = self.base + '-' + self.type_ + '-' self.config = ConfigParser.SafeConfigParser() - self.config.read(os.path.join(sys.path[0], '..', 'build.ini')) + self.config.read(os.path.join(sys.path[0], self.base_dir, 'build.ini')) self.include_header = args['include_header'] self.regex = args['regex'] diff --git a/tools/build.py b/tools/build.py new file mode 120000 index 0000000000..285d9d6602 --- /dev/null +++ b/tools/build.py @@ -0,0 +1 @@ +../kolla/cmd/build.py \ No newline at end of file