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:
@@ -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'))
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user