Exemplo n.º 1
0
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})
Exemplo n.º 2
0
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({})
Exemplo n.º 3
0
 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)
Exemplo n.º 4
0
 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)
Exemplo n.º 5
0
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
Exemplo n.º 6
0
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'})
Exemplo n.º 7
0
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())
Exemplo n.º 8
0
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)
Exemplo n.º 9
0
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)
Exemplo n.º 10
0
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})
Exemplo n.º 11
0
 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
Exemplo n.º 12
0
 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()