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)
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))
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))