Few improvements in Kolla tools. Added Ubuntu support.

pip install default prefix in Ubuntu is /usr/local, and Kolla tools scripts
didnt respect that. So I added few OS checks in this scripts.

I improve config path check in build.py. Added more verbose error if we can't
find config directory.

Change-Id: Ide521ed205b0dc1fc27e237a9a8f4da0168e664f
Closes-Bug: #1512302
This commit is contained in:
Kirill Proskurin 2015-11-02 13:49:42 +03:00 committed by Proskurin Kirill
parent efab0314e9
commit 396014f8d1
2 changed files with 22 additions and 7 deletions

View File

@ -20,6 +20,7 @@ import datetime
import json
import logging
import os
import platform
import Queue
import re
import requests
@ -189,12 +190,19 @@ class WorkerThread(Thread):
LOG.info('{}:Built'.format(image['name']))
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.join(script_path, '..', '..')
if os.path.basename(script_path) == 'bin':
return '/usr/share/kolla'
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(
@ -203,13 +211,18 @@ def find_base_dir():
def find_config_file(filename):
filepath = os.path.join('/etc/kolla', filename)
if os.access(filepath, os.R_OK):
config_file = filepath
global_conf_path = os.path.join('/etc/kolla', filename)
local_conf_path = os.path.join(find_base_dir(), 'etc', 'kolla', filename)
if os.access(global_conf_path, os.R_OK):
return global_conf_path
elif os.access(local_conf_path, os.R_OK):
return local_conf_path
else:
config_file = os.path.join(find_base_dir(),
'etc', 'kolla', filename)
return config_file
raise KollaDirNotFoundException(
'Cant find kolla config. Searched at: %s and %s' %
(global_conf_path, local_conf_path)
)
def merge_args_and_config(settings_from_config_file):

View File

@ -7,6 +7,8 @@ function find_base_dir {
local dir_name="$(dirname "$real_path")"
if [[ ${dir_name} == "/usr/bin" ]]; then
BASEDIR=/usr/share/kolla
elif [[ ${dir_name} == "/usr/local/bin" ]]; then
BASEDIR=/usr/local/share/kolla
else
BASEDIR="${dir_name}/.."
fi