def upload_project(project_name, _zip, _url, _alias, _create): """Upload project.""" session = Session(_url, _alias) while True: try: res = session.upload_project( name=project_name, path=_zip, callback=_upload_callback ) except AzkabanError as err: if _create: session.create_project(project_name, project_name) else: raise err else: break sys.stdout.write( 'Project %s successfully uploaded (id: %s, size: %s, version: %s).\n' 'Details at %s/manager?project=%s\n' % ( project_name, res['projectId'], human_readable(osp.getsize(_zip)), res['version'], session.url, project_name, ) )
def upload_project(project_name, zip, url, alias, create): """Upload project.""" session = Session(url, alias) while True: try: res = session.upload_project(project_name, zip) except AzkabanError as err: if create: session.create_project(project_name, project_name) else: raise err else: break stdout.write( 'Project %s successfully uploaded (id: %s, size: %s, version: %s).\n' 'Details at %s/manager?project=%s\n' % ( project_name, res['projectId'], human_readable(getsize(zip)), res['version'], session.url, project_name, ) )
def build_project(project, zip, url, alias, replace, create): """Build project.""" if zip: project.build(zip, overwrite=replace) stdout.write( 'Project successfully built and saved as %r (size: %s).\n' % (zip, human_readable(getsize(zip))) ) else: with temppath() as zip: project.build(zip) session = Session(url, alias) while True: try: res = session.upload_project(project.name, zip) except AzkabanError as err: if create: session.create_project(project.name, project.name) else: raise err else: break stdout.write( 'Project %s successfully built and uploaded ' '(id: %s, size: %s, version: %s).\n' 'Details at %s/manager?project=%s\n' % ( project, res['projectId'], human_readable(getsize(zip)), res['version'], session.url, project, ) )
def create_project(url, alias): """Create new project on remote Azkaban server.""" session = Session(url, alias) name = raw_input('Project name: ').strip() description = raw_input('Project description [%s]: ' % (name, )) session.create_project(name, description.strip() or name) stdout.write( 'Project %s successfully created.\n' 'Details at %s/manager?project=%s\n' % (name, session.url, 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 = 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, ) )