def write_requirements_file(request, object_id, object_type): """View that starts task to write the requirements file for package or experiment""" get_package_or_experiment(request, object_type, object_id) task_write_requirements_file.delay(object_id, object_type) logger.info("manually updating dependencies for experiment %s of %s", request.user, object_id) send_message(request.user.username, MessageStatus.INFO, 'Task started to update dependencies...') return JsonResponse({'success': True})
def docs_generate(request, object_id, object_type): """Start task to regenerate documentation""" exp_or_package = get_package_or_experiment(request, object_type, object_id) send_message(exp_or_package.owner.user.username, MessageStatus.INFO, 'Task to regenerate documentation started.') task_generate_docs.delay(object_type, object_id) return JsonResponse({})
def get(self, request, object_id, object_type): context = {} django_object = get_package_or_experiment(request, object_type, object_id) context['object'] = django_object context['docs'] = django_object.docs context['object_type'] = object_type return render(request, 'docs_manager/docs_status.html', context)
def get(self, request, object_id, object_type, page_slug=None): exp_or_package = get_package_or_experiment(request, object_type, object_id) language_helper = exp_or_package.language_helper() if page_slug: location = language_helper.get_document(page_slug) else: location = language_helper.get_document('index') return redirect(to=location)
def get_exp_or_package_from_request(request): """Get experiment or internalpackage from request. Request.POST should contain object_id (pk) and object_type (ExperimentPackageType)""" assert 'object_id' in request.POST assert 'object_type' in request.POST object_id = request.POST['object_id'] object_type = request.POST['object_type'] exp_or_package = get_package_or_experiment(request, object_type, object_id) return exp_or_package
def get_log_from_last_build(request, object_id, object_type): """Get log from last build given object_id and object_type If no log exists, return error message""" exp_or_package = get_package_or_experiment(request, object_type, object_id) github_helper = get_github_helper(request, exp_or_package) travis_helper = TravisCiHelper(github_helper) try: log = travis_helper.get_log_for_last_build() logger.debug('fetched log for last build for %s', exp_or_package) return JsonResponse({'log': log}) except TravisError: return JsonResponse({'log': 'Failed to retrieve log'})
def toggle_docs_status(request, object_id, object_type): exp_or_package = get_package_or_experiment(request, object_type, object_id) docs = exp_or_package.docs docs.enabled = not docs.enabled docs.save() if docs.enabled: github_helper = GitHubHelper(request.user, exp_or_package.git_repo.name) git_helper = GitHelper(github_helper) git_helper.clone_or_pull_repository() return redirect(exp_or_package.get_absolute_url())
def coveralls_status(request, object_id, object_type): """Get coveralls status for an experiment given an object_id (pk) and an object_type (ExperimentPackageType). Status is present in context dictionary.""" exp_or_package = get_package_or_experiment(request, object_type, object_id) travis_instance = exp_or_package.travis context = {} current_config = CodeCoverage.objects.filter(travis_instance=travis_instance) context['object_id'] = exp_or_package.id context['coverage_configured'] = False context['travis'] = travis_instance if current_config: context['current_config'] = current_config[0] context['coverage_configured'] = context['current_config'].enabled logger.debug('fetched coveralls status %s: %s', exp_or_package, context) return render(request, 'coverage_manager/coverage_status.html', context)
def build_status(request, object_id, object_type): """Get the build status for an experiment""" exp_or_package = get_package_or_experiment(request, object_type, object_id) context = {} current_config = exp_or_package.travis context['object_id'] = exp_or_package.id context['object_type'] = object_type context['configured'] = False if current_config: context['current_config'] = current_config context['configured'] = context['current_config'].enabled github_helper = get_github_helper(request, exp_or_package) context['reposlug'] = exp_or_package.git_repo.name context[ 'github_username'] = github_helper.github_repository.owner.login logger.debug('build status for %s with config %s', exp_or_package, context) return render(request, 'build_manager/build_status.html', context)
def remove_experiment_requirement(request, object_id, object_type): """Removes the requirement from the experiment, expects requirement_id (PK of req object) to be present in request.POST""" if request.POST: assert 'requirement_id' in request.POST requirement_id = request.POST['requirement_id'] exp_or_package = get_package_or_experiment(request, object_type, object_id) requirement = exp_or_package.requirements.filter(pk=requirement_id) if requirement: requirement = requirement[0] with transaction.atomic(): exp_or_package.requirements.remove(requirement) exp_or_package.save() logger.info("deleted dependency %s from experiment %s", requirement, exp_or_package) requirement.delete() return JsonResponse({'deleted': True}) return JsonResponse({'deleted': False})
def get_exp_or_package(self): object_type = self.kwargs['object_type'] object_id = self.kwargs['object_id'] exp_or_package = get_package_or_experiment(self.request, object_type, object_id) return exp_or_package
def get_queryset(self): exp_or_package = get_package_or_experiment(self.request, self.kwargs['object_type'], self.kwargs['pk']) return exp_or_package.requirements.all()