Ejemplo n.º 1
0
def region_create():
    if not can_create(current_user):
        abort(401)

    form = RegionForm(request.form)

    if request.method == 'POST' and form.validate():

        db_session = DBSession()
        region = get_region(db_session, form.region_name.data)

        if region is not None:
            return render_template('region/edit.html',
                                   form=form,
                                   duplicate_error=True)

        # Compose a list of server hostnames
        server_names = [
            get_server_by_id(db_session, id).hostname
            for id in request.form.getlist('selected-servers')
        ]

        try:
            create_or_update_region(db_session=db_session,
                                    region_name=form.region_name.data,
                                    server_repositories=",".join(server_names),
                                    created_by=current_user.username)
        except Exception as e:
            db_session.rollback()
            logger.exception("region_create() encountered an exception: " +
                             e.message)

        return redirect(url_for('home'))

    return render_template('region/edit.html', form=form)
Ejemplo n.º 2
0
def region_add(request):
    """Add a new region to the cluster.
    
    :param request: the request object
    
    :returns: an edit form template
    """
    form = RegionForm(request.POST or None)
    if form.is_valid():
        form.save()
        return redirect('limeade_cluster_region_list')
    return render_to_response("limeade_cluster/region_add.html",
                              {"form": form},
                              context_instance=RequestContext(request))
Ejemplo n.º 3
0
def region_edit(request, slug):
    """Edit a region.
    
    :param request: the request object
    :param slug: the id of the region
    
    :returns: an edit form template
    """
    region = Region.objects.get(pk=slug)
    form = RegionForm(request.POST or None, instance=region)
    if form.is_valid():
        form.save()
        return redirect('limeade_cluster_region_list')
    return render_to_response("limeade_cluster/region_edit.html",
                              {"form": form},
                              context_instance=RequestContext(request))