Add --projects to specify which projects to build
New option --projects (-p) allows you to only build certain projects from the manifest you're using. Example: giftwrap build -m examples/manifest.yml -t package -p glance cinder
This commit is contained in:
parent
bc16005950
commit
9716cfb3ef
|
@ -22,7 +22,8 @@ from giftwrap.settings import Settings
|
||||||
|
|
||||||
class BuildSpec(object):
|
class BuildSpec(object):
|
||||||
|
|
||||||
def __init__(self, manifest, version, build_type=None, parallel=True):
|
def __init__(self, manifest, version, build_type=None, parallel=True,
|
||||||
|
limit_projects=None):
|
||||||
self._manifest = yaml.load(manifest)
|
self._manifest = yaml.load(manifest)
|
||||||
self.version = version
|
self.version = version
|
||||||
self.build_type = build_type
|
self.build_type = build_type
|
||||||
|
@ -35,13 +36,14 @@ class BuildSpec(object):
|
||||||
parallel = False
|
parallel = False
|
||||||
manifest_settings['parallel_build'] = parallel
|
manifest_settings['parallel_build'] = parallel
|
||||||
self.settings = Settings.factory(manifest_settings)
|
self.settings = Settings.factory(manifest_settings)
|
||||||
self.projects = self._render_projects()
|
self.projects = self._render_projects(limit_projects)
|
||||||
|
|
||||||
def _render_projects(self):
|
def _render_projects(self, limit_projects):
|
||||||
projects = []
|
projects = []
|
||||||
if 'projects' in self._manifest:
|
if 'projects' in self._manifest:
|
||||||
for project in self._manifest['projects']:
|
for project in self._manifest['projects']:
|
||||||
projects.append(OpenstackProject.factory(self.settings,
|
if limit_projects is None or project['name'] in limit_projects:
|
||||||
project,
|
projects.append(OpenstackProject.factory(self.settings,
|
||||||
self.version))
|
project,
|
||||||
|
self.version))
|
||||||
return projects
|
return projects
|
||||||
|
|
|
@ -47,7 +47,8 @@ def build(args):
|
||||||
with open(args.manifest, 'r') as fh:
|
with open(args.manifest, 'r') as fh:
|
||||||
manifest = fh.read()
|
manifest = fh.read()
|
||||||
|
|
||||||
buildspec = BuildSpec(manifest, args.version, args.type, args.parallel)
|
buildspec = BuildSpec(manifest, args.version, args.type, args.parallel,
|
||||||
|
args.projects)
|
||||||
builder = BuilderFactory.create_builder(args.type, buildspec)
|
builder = BuilderFactory.create_builder(args.type, buildspec)
|
||||||
|
|
||||||
def _signal_handler(*args):
|
def _signal_handler(*args):
|
||||||
|
@ -84,6 +85,7 @@ def main():
|
||||||
required=True)
|
required=True)
|
||||||
build_subcmd.add_argument('-s', '--synchronous', dest='parallel',
|
build_subcmd.add_argument('-s', '--synchronous', dest='parallel',
|
||||||
action='store_false')
|
action='store_false')
|
||||||
|
build_subcmd.add_argument('-p', '--projects', nargs='*', dest='projects')
|
||||||
build_subcmd.set_defaults(func=build)
|
build_subcmd.set_defaults(func=build)
|
||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
Loading…
Reference in New Issue