def view_info(project, _files, _option, _job, _include_properties): """List jobs in project.""" if _job: if _include_properties: write_properties( flatten(project.properties), header='project.properties' ) for name in _job: project.jobs[name].build(header='%s.job' % (name, )) elif _files: for path, archive_path in sorted(project.files): sys.stdout.write('%s\t%s\n' % (osp.relpath(path), archive_path)) else: options = _parse_option(_option).items() jobs = sorted(project.jobs.items()) dependencies = set( dep for _, job in jobs for dep in job.options.get('dependencies', '').split(',') ) for name, job in jobs: if all(job.options.get(k) == v for k, v in options): sys.stdout.write( '%s\t%s\n' % ('J' if name in dependencies else 'F', name, ) )
def view_info(project, _files, _option, _job, _include_properties): """List jobs in project.""" if _job: if _include_properties: write_properties( flatten(project.properties), header='project.properties' ) for name in _job: project.jobs[name].build(header='%s.job' % (name, )) elif _files: for path, archive_path in sorted(project.files): sys.stdout.write('%s\t%s\n' % (osp.relpath(path), archive_path)) else: options = _parse_option(_option).items() jobs = sorted(project.jobs.items()) dependencies = set( dep.strip() for _, job in jobs for dep in job.options.get('dependencies', '').split(',') ) for name, job in jobs: if all(job.options.get(k) == v for k, v in options): sys.stdout.write( '%s\t%s\n' % ('J' if name in dependencies else 'F', name, ) )
def build_project(project, _zip, _url, _alias, _replace, _create, _option): """Build project.""" if _option: project.properties = flatten(project.properties) # to make sure we properly override nested options, we flatten first project.properties.update(_parse_option(_option)) if _zip: if osp.isdir(_zip): _zip = osp.join(_zip, '%s.zip' % (project.versioned_name, )) project.build(_zip, overwrite=_replace) sys.stdout.write( 'Project %s successfully built and saved as %r (size: %s).\n' % (project, _zip, human_readable(osp.getsize(_zip))) ) else: with temppath() as _zip: project.build(_zip) archive_name = '%s.zip' % (project.versioned_name, ) session = _get_session(_url, _alias) res = _upload_zip(session, project.name, _zip, _create, archive_name) sys.stdout.write( 'Project %s successfully built and uploaded ' '(id: %s, size: %s, upload: %s).\n' 'Details at %s/manager?project=%s\n' % ( project, res['projectId'], human_readable(osp.getsize(_zip)), res['version'], session.url, project, ) )
def build_project(project, _zip, _url, _alias, _replace, _create, _option): """Build project.""" if _option: project.properties = flatten(project.properties) # to make sure we properly override nested options, we flatten first project.properties.update(_parse_option(_option)) if _zip: if osp.isdir(_zip): _zip = osp.join(_zip, '%s.zip' % (project.versioned_name, )) project.build(_zip, overwrite=_replace) sys.stdout.write( 'Project %s successfully built and saved as %r (size: %s).\n' % (project, _zip, human_readable(osp.getsize(_zip))) ) else: with temppath() as _zip: project.build(_zip) archive_name = '%s.zip' % (project.versioned_name, ) session = Session(_url, _alias) while True: try: res = session.upload_project( name=project.name, path=_zip, archive_name=archive_name, callback=_upload_callback ) except AzkabanError as err: if _create and str(err).endswith("doesn't exist."): session.create_project(project.name, project.name) else: raise err else: break sys.stdout.write( 'Project %s successfully built and uploaded ' '(id: %s, size: %s, upload: %s).\n' 'Details at %s/manager?project=%s\n' % ( project, res['projectId'], human_readable(osp.getsize(_zip)), res['version'], session.url, project, ) )