def changelocation(request, g_id): ''' Handler for changing the host:port of the gateway. ''' session = request.session username = session['login_email'] g_id = int(g_id) form = gatewayforms.ModifyGatewayLocation(request.POST) if form.is_valid(): new_host = form.cleaned_data['host'] new_port = form.cleaned_data['port'] fields = {'host': new_host, 'port': new_port} # Update and redirect try: db.update_acquisition_gateway(g_id, **fields) except Exception as e: logging.error("Unable to update AG: %d. Error was %s." % (g_id, e)) session['message'] = "Error. Unable to change acquisition gateway." return redirect('django_ag.views.viewgateway', g_id) session['new_change'] = "We've updated your AG." session['next_url'] = '/syn/AG/viewgateway/' + str(g_id) session['next_message'] = "Click here to go back to your gateway." return redirect('/syn/thanks') else: session['message'] = "Invalid form entries for gateway location." return redirect('django_ag.views.viewgateway', g_id)
def changelocation(request, g_id): ''' View to enable changing host and port of UG ''' session = request.session g_id = int(g_id) form = gatewayforms.ModifyGatewayLocation(request.POST) if form.is_valid(): new_host = form.cleaned_data['host'] new_port = form.cleaned_data['port'] fields = {'host': new_host, 'port': new_port} try: db.update_user_gateway(g_id, **fields) except Exception as e: logging.error("Unable to update UG with ID %s. Error was %s." % (g_id, e)) session['message'] = "Error. Unable to change user gateway." return redirect('django_ug.views.viewgateway', g_id) session['new_change'] = "We've updated your UG." session['next_url'] = '/syn/UG/viewgateway/' + str(g_id) session['next_message'] = "Click here to go back to your gateway." return HttpResponseRedirect('/syn/thanks') else: session['message'] = "Invalid form entries for gateway location." return redirect('django_ug.views.viewgateway', g_id)
def viewgateway(request, g_id=0): ''' The view for viewing and changing any of the main settings on any UG. Passes forms for changing different settings, and the volumes attached to the gateway. ''' session = request.session username = session['login_email'] message = session.pop('message', "") g_id = int(g_id) g = db.read_user_gateway(g_id) if not g: logging.error("Error reading gateway %d : Does note exist" % g_id) message = "No user gateway with the ID %d exists." % g_id t = loader.get_template("gateway_templates/viewgateway_failure.html") c = Context({'message': message, 'username': username}) return HttpResponse(t.render(c)) # Create necessary forms location_form = gatewayforms.ModifyGatewayLocation(initial={ 'host': g.host, 'port': g.port }) change_form = gatewayforms.ChangeVolume() password_form = libforms.Password() change_password_form = libforms.ChangePassword() vol = db.read_volume(g.volume_id) if not vol: vol = None owner = None """ if g.volume_id != 0: logging.error("Volume ID %s in gateways volume_ids does not map to volume. Gateway: %s" % (g.volume_id, g_id)) return redirect('django_ug.views.allgateways') else: vol = None owner = None """ else: attrs = {"SyndicateUser.owner_id ==": vol.owner_id} owner = db.get_user(attrs) logging.info(owner) logging.info(vol.owner_id) t = loader.get_template("gateway_templates/viewusergateway.html") c = RequestContext( request, { 'username': username, 'gateway': g, 'message': message, 'vol': vol, 'owner': owner, 'location_form': location_form, 'change_form': change_form, 'password_form': password_form, 'change_password_form': change_password_form }) return HttpResponse(t.render(c))
def viewgateway(request, g_id=0): ''' The view for viewing and changing any of the main settings on any AG. Passes forms for changing different settings, and the volumes attached to the gateway. ''' session = request.session username = session['login_email'] g_id = int(g_id) # Check for passed error messages or inital data from session-state. message = session.pop('message', "") ag_initial_data = session.get('ag_initial_data' + str(g_id), []) # Make sure this gateway actually exists. g = db.read_acquisition_gateway(g_id) if not g: logging.error("Error reading gateway %s : Does not exist." % (g_id)) message = "No acquisition gateway with the ID %s exists." % g_id t = loader.get_template("gateway_templates/viewgateway_failure.html") c = Context({'message': message, 'username': username}) return HttpResponse(t.render(c)) # Create forms for changing location, adding volumes, # changing password, getting password, and changing config location_form = gatewayforms.ModifyGatewayLocation(initial={ 'host': g.host, 'port': g.port }) add_form = gatewayforms.GatewayAddVolume() json_form = gatewayforms.ModifyGatewayConfig() password_form = libforms.Password() change_password_form = libforms.ChangePassword() # Get all attached volumes and their respective owners owners = [] vols = [] for v_id in g.volume_ids: vol = db.read_volume(v_id) if not vol: logging.error( "Volume ID in gateways volume_ids does not map to volume. Gateway: %s" % g_name) else: vols.append(vol) attrs = {"SyndicateUser.owner_id ==": vol.owner_id} owners.append(db.get_user(attrs)) vol_owners = zip(vols, owners) # Create formatted data based on vols for the formset, if not passed in state. if not ag_initial_data: for v in vols: ag_initial_data.append({'volume_name': v.name, 'remove': False}) session['ag_initial_data' + str(g_id)] = ag_initial_data VolumeFormSet = formset_factory(gatewayforms.GatewayRemoveVolume, extra=0) if ag_initial_data: formset = VolumeFormSet(initial=ag_initial_data) else: formset = None t = loader.get_template("gateway_templates/viewacquisitiongateway.html") c = RequestContext( request, { 'username': username, 'gateway': g, 'message': message, 'vol_owners': vol_owners, 'location_form': location_form, 'add_form': add_form, 'json_form': json_form, 'remove_forms': formset, 'password_form': password_form, 'change_password_form': change_password_form }) return HttpResponse(t.render(c))