Merge "Fix the kolla to find the docker image folder in virtualenv"

This commit is contained in:
Jenkins 2016-01-06 14:53:58 +00:00 committed by Gerrit Code Review
commit ecfc955a7e

View File

@ -20,7 +20,6 @@ import graphviz
import json
import logging
import os
import platform
import re
import requests
import shutil
@ -48,6 +47,9 @@ LOG.setLevel(logging.INFO)
signal.signal(signal.SIGINT, signal.SIG_DFL)
PROJECT_ROOT = os.path.abspath(os.path.join(
os.path.dirname(os.path.realpath(__file__)), '../..'))
class KollaDirNotFoundException(Exception):
pass
@ -277,34 +279,11 @@ class WorkerThread(Thread):
self.push_queue.put(image)
def find_os_type():
return platform.linux_distribution()
def find_base_dir():
script_path = os.path.dirname(os.path.realpath(sys.argv[0]))
if os.path.basename(script_path) == 'cmd':
return os.path.realpath(os.path.join(script_path, '..', '..'))
if os.path.basename(script_path) == 'bin':
if find_os_type()[0] in ['Ubuntu', 'debian']:
return '/usr/local/share/kolla'
else:
return '/usr/share/kolla'
if os.path.exists(os.path.join(script_path, 'tests')):
return script_path
raise KollaDirNotFoundException(
'I do not know where your Kolla directory is'
)
class KollaWorker(object):
def __init__(self, conf):
self.conf = conf
self.base_dir = os.path.abspath(find_base_dir())
LOG.debug("Kolla base directory: " + self.base_dir)
self.images_dir = os.path.join(self.base_dir, 'docker')
self.images_dir = self._get_images_dir()
self.registry = conf.registry
if self.registry:
self.namespace = self.registry + '/' + conf.namespace
@ -343,6 +322,20 @@ class KollaWorker(object):
self.image_statuses_unmatched = dict()
self.maintainer = conf.maintainer
def _get_images_dir(self):
possible_paths = (
PROJECT_ROOT,
os.path.join(sys.prefix, 'share/kolla'),
os.path.join(sys.prefix, 'local/share/kolla'))
for path in possible_paths:
image_path = os.path.join(path, 'docker')
if os.path.exists(image_path):
LOG.info('Found the docker image folder at %s', image_path)
return image_path
else:
raise KollaDirNotFoundException('Image dir can not be found')
def build_rpm_setup(self, rpm_setup_config):
"""Generates a list of docker commands based on provided configuration.