def plugin_update(request, oid): host = get_base_url(request) jc = JailsConfiguration.objects.order_by("-id")[0] logfile = "%s/warden.log" % jc.jc_path if os.path.exists(logfile): os.unlink(logfile) if os.path.exists(WARDEN_EXTRACT_STATUS_FILE): os.unlink(WARDEN_EXTRACT_STATUS_FILE) if os.path.exists("/tmp/.plugin_upload_install"): os.unlink("/tmp/.plugin_upload_install") if os.path.exists("/tmp/.jailcreate"): os.unlink("/tmp/.jailcreate") if os.path.exists(PROGRESS_FILE): os.unlink(PROGRESS_FILE) iplugin = models.Plugins.objects.filter(id=oid) if not iplugin: raise MiddlewareError(_("Plugin not installed")) iplugin = iplugin[0] rplugin = None for rp in availablePlugins.get_remote(cache=True): if rp.name == iplugin.plugin_name: rplugin = rp break if not rplugin: raise MiddlewareError(_("Invalid plugin")) (p, js, jail_status) = get_plugin_status([iplugin, host, request]) if js and js["status"] == "RUNNING": (p, js, jail_status) = get_plugin_stop([iplugin, host, request]) if request.method == "POST": plugin_upload_path = notifier().get_plugin_upload_path() notifier().change_upload_location(plugin_upload_path) if not rplugin.download("/var/tmp/firmware/pbifile.pbi"): raise MiddlewareError(_("Failed to download plugin")) jail = Jails.objects.filter(jail_host=iplugin.plugin_jail) if not jail: raise MiddlewareError(_("Jail does not exist")) if notifier().update_pbi(plugin=iplugin): notifier()._start_plugins(jail=iplugin.plugin_jail, plugin=iplugin.plugin_name) else: raise MiddlewareError(_("Failed to update plugin")) return JsonResp(request, message=_("Plugin successfully updated"), events=["reloadHttpd()"]) return render(request, "plugins/plugin_update.html", {"plugin": rplugin})
def plugin_update(request, oid): host = get_base_url(request) reset_plugin_progress() iplugin = models.Plugins.objects.filter(id=oid) if not iplugin: raise MiddlewareError(_("Plugin not installed")) iplugin = iplugin[0] rplugin = None for rp in availablePlugins.get_remote(cache=True): if rp.name.lower() == iplugin.plugin_name.lower(): rplugin = rp break if not rplugin: raise MiddlewareError(_("Invalid plugin")) (p, js, jail_status) = get_plugin_status([iplugin, host, request]) if js and js['status'] == 'RUNNING': (p, js, jail_status) = get_plugin_stop([iplugin, host, request]) if request.method == "POST": plugin_upload_path = notifier().get_plugin_upload_path() notifier().change_upload_location(plugin_upload_path) if not rplugin.download("/var/tmp/firmware/pbifile.pbi"): raise MiddlewareError(_("Failed to download plugin")) jail = Jails.objects.filter(jail_host=iplugin.plugin_jail) if not jail: raise MiddlewareError(_("Jail does not exist")) if notifier().update_pbi(plugin=iplugin): notifier()._start_plugins( jail=iplugin.plugin_jail, plugin=iplugin.plugin_name, ) else: raise MiddlewareError(_("Failed to update plugin")) return JsonResp( request, message=_("Plugin successfully updated"), events=['reloadHttpd()'], ) return render(request, "plugins/plugin_update.html", { 'plugin': rplugin, })
def plugin_update(request, oid): host = get_base_url(request) jc = JailsConfiguration.objects.order_by("-id")[0] logfile = '%s/warden.log' % jc.jc_path if os.path.exists(logfile): os.unlink(logfile) if os.path.exists(WARDEN_EXTRACT_STATUS_FILE): os.unlink(WARDEN_EXTRACT_STATUS_FILE) if os.path.exists("/tmp/.plugin_upload_install"): os.unlink("/tmp/.plugin_upload_install") if os.path.exists("/tmp/.jailcreate"): os.unlink("/tmp/.jailcreate") if os.path.exists(PROGRESS_FILE): os.unlink(PROGRESS_FILE) iplugin = models.Plugins.objects.filter(id=oid) if not iplugin: raise MiddlewareError(_("Plugin not installed")) iplugin = iplugin[0] rplugin = None for rp in availablePlugins.get_remote(cache=True): if rp.name.lower() == iplugin.plugin_name.lower(): rplugin = rp break if not rplugin: raise MiddlewareError(_("Invalid plugin")) (p, js, jail_status) = get_plugin_status([iplugin, host, request]) if js and js['status'] == 'RUNNING': (p, js, jail_status) = get_plugin_stop([iplugin, host, request]) if request.method == "POST": plugin_upload_path = notifier().get_plugin_upload_path() notifier().change_upload_location(plugin_upload_path) if not rplugin.download("/var/tmp/firmware/pbifile.pbi"): raise MiddlewareError(_("Failed to download plugin")) jail = Jails.objects.filter(jail_host=iplugin.plugin_jail) if not jail: raise MiddlewareError(_("Jail does not exist")) if notifier().update_pbi(plugin=iplugin): notifier()._start_plugins( jail=iplugin.plugin_jail, plugin=iplugin.plugin_name, ) else: raise MiddlewareError(_("Failed to update plugin")) return JsonResp( request, message=_("Plugin successfully updated"), events=['reloadHttpd()'], ) return render(request, "plugins/plugin_update.html", { 'plugin': rplugin, })