def start(request, plugin_id): firefly_key, firefly_secret = utils.get_firefly_oauth_creds() url = utils.get_rpc_url(request) trans = OAuthTransport(url, key=firefly_key, secret=firefly_secret) server = jsonrpclib.Server(url, transport=trans) auth = server.plugins.is_authenticated(request.COOKIES.get( "sessionid", "")) jail_path = server.plugins.jail.path(plugin_id) assert auth try: firefly = models.Firefly.objects.order_by('-id')[0] firefly.enable = True firefly.save() except IndexError: firefly = models.Firefly.objects.create(enable=True) try: form = forms.FireflyForm(firefly.__dict__, instance=firefly, jail_path=jail_path) form.is_valid() form.save() except ValueError: return HttpResponse(simplejson.dumps({ 'error': True, 'message': 'Firefly data did not validate, please configure it first.', }), content_type='application/json') cmd = "%s onestart" % utils.firefly_control pipe = Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE, shell=True, close_fds=True) out = pipe.communicate()[0] return HttpResponse(simplejson.dumps({ 'error': False, 'message': out, }))
try: firefly = models.Firefly.objects.order_by('-id')[0] except IndexError: firefly = models.Firefly.objects.create() try: server = jsonrpclib.Server(url, transport=trans) jail_path = server.plugins.jail.path(plugin_id) auth = server.plugins.is_authenticated( request.COOKIES.get("sessionid", "")) assert auth except Exception, e: raise if request.method == "GET": form = forms.FireflyForm(instance=firefly, jail_path=jail_path) return render(request, "edit.html", { 'form': form, }) if not request.POST: return JsonResponse(request, error=True, message="A problem occurred.") form = forms.FireflyForm(request.POST, instance=firefly, jail_path=jail_path) if form.is_valid(): form.save() return JsonResponse(request, error=True, message="Firefly settings successfully saved.")