Add the project under test to LIBS_FROM_GIT
This automatically always adds the project under test to LIBS_FROM_GIT
which effectively makes the normal "tempest full" job the same as the
"forward testing" job when it is applied to a library repo.
Change-Id: Ibbdd8a86e0ff55f67bef73e08e693b34a61b24df
diff --git a/roles/write-devstack-local-conf/library/devstack_local_conf.py b/roles/write-devstack-local-conf/library/devstack_local_conf.py
index 9728fef..bba7e31 100644
--- a/roles/write-devstack-local-conf/library/devstack_local_conf.py
+++ b/roles/write-devstack-local-conf/library/devstack_local_conf.py
@@ -207,12 +207,13 @@
class LocalConf(object):
def __init__(self, localrc, localconf, base_services, services, plugins,
- base_dir, projects):
+ base_dir, projects, project):
self.localrc = []
self.meta_sections = {}
self.plugin_deps = {}
self.base_dir = base_dir
self.projects = projects
+ self.project = project
if plugins:
self.handle_plugins(plugins)
if services or base_services:
@@ -249,11 +250,15 @@
if k == 'LIBS_FROM_GIT':
lfg = True
- if not lfg and self.projects:
+ if not lfg and (self.projects or self.project):
required_projects = []
- for project_name, project_info in self.projects.items():
- if project_info.get('required'):
- required_projects.append(project_info['short_name'])
+ if self.projects:
+ for project_name, project_info in self.projects.items():
+ if project_info.get('required'):
+ required_projects.append(project_info['short_name'])
+ if self.project:
+ if self.project['short_name'] not in required_projects:
+ required_projects.append(self.project['short_name'])
if required_projects:
self.localrc.append('LIBS_FROM_GIT={}'.format(
','.join(required_projects)))
@@ -291,6 +296,7 @@
base_dir=dict(type='path'),
path=dict(type='str'),
projects=dict(type='dict'),
+ project=dict(type='dict'),
)
)
@@ -301,7 +307,8 @@
p.get('services'),
p.get('plugins'),
p.get('base_dir'),
- p.get('projects'))
+ p.get('projects'),
+ p.get('project'))
lc.write(p['path'])
module.exit_json()
diff --git a/roles/write-devstack-local-conf/library/test.py b/roles/write-devstack-local-conf/library/test.py
index 7ccb68f..791552d 100644
--- a/roles/write-devstack-local-conf/library/test.py
+++ b/roles/write-devstack-local-conf/library/test.py
@@ -57,7 +57,8 @@
p.get('services'),
p.get('plugins'),
p.get('base_dir'),
- p.get('projects'))
+ p.get('projects'),
+ p.get('project'))
lc.write(p['path'])
plugins = []
@@ -120,17 +121,22 @@
'short_name': 'devstack-plugin',
},
}
+ project = {
+ 'short_name': 'glance',
+ }
p = dict(base_services=[],
base_dir='./test',
path=os.path.join(self.tmpdir, 'test.local.conf'),
- projects=projects)
+ projects=projects,
+ project=project)
lc = LocalConf(p.get('localrc'),
p.get('local_conf'),
p.get('base_services'),
p.get('services'),
p.get('plugins'),
p.get('base_dir'),
- p.get('projects'))
+ p.get('projects'),
+ p.get('project'))
lc.write(p['path'])
lfg = None
@@ -138,7 +144,7 @@
for line in f:
if line.startswith('LIBS_FROM_GIT'):
lfg = line.strip().split('=')[1]
- self.assertEqual('nova,oslo.messaging', lfg)
+ self.assertEqual('nova,oslo.messaging,glance', lfg)
def test_overridelibs_from_git(self):
"Test that LIBS_FROM_GIT can be overridden"
@@ -168,7 +174,8 @@
p.get('services'),
p.get('plugins'),
p.get('base_dir'),
- p.get('projects'))
+ p.get('projects'),
+ p.get('project'))
lc.write(p['path'])
lfg = None