Add local directory or file for source build

This change allows using a local directory or tarball to build from
sources by specifying the 'local' type in your kolla-build.conf:

    [keystone-base]
    type=local
    location=/home/martin/src/keystone

    [neutron-server-plugin-networking-cisco]
    type=local
    location=/tmp/networking-cisco.tar.gz

Closes-Bug: #1509625
Co-Authored-By: Martin André <m.andre@redhat.com>
Change-Id: I3f6f68b0f44efdac653d186d2625591ad7cb3b2a
This commit is contained in:
SamYaple 2016-02-18 03:01:49 +00:00 committed by Martin André
parent 13a6062260
commit 279594ab64
2 changed files with 11 additions and 1 deletions

View File

@ -208,6 +208,16 @@ class WorkerThread(threading.Thread):
with tarfile.open(dest_archive, 'w') as tar:
tar.add(clone_dir, arcname=os.path.basename(clone_dir))
elif source.get('type') == 'local':
LOG.debug("%s:Getting local archive from %s", image['name'],
source['source'])
if os.path.isdir(source['source']):
with tarfile.open(dest_archive, 'w') as tar:
tar.add(source['source'],
arcname=os.path.basename(source['source']))
else:
shutil.copyfile(source['source'], dest_archive)
else:
LOG.error("%s:Wrong source type '%s'", image['name'],
source.get('type'))

View File

@ -241,7 +241,7 @@ SOURCES = {
def get_source_opts(type_=None, location=None, reference=None):
return [cfg.StrOpt('type', choices=['git', 'url'],
return [cfg.StrOpt('type', choices=['local', 'git', 'url'],
default=type_,
help='Source location type'),
cfg.StrOpt('location', default=location,