databases/redis: add reset db button (#1348)

This commit is contained in:
Michael 2019-05-23 08:42:00 +02:00 committed by Franco Fichtner
parent b5aa5b3afa
commit 784f372aa6
5 changed files with 53 additions and 1 deletions

View File

@ -1,5 +1,5 @@
PLUGIN_NAME= redis
PLUGIN_VERSION= 1.0
PLUGIN_VERSION= 1.1
PLUGIN_COMMENT= Redis DB
PLUGIN_DEPENDS= redis
PLUGIN_MAINTAINER= franz.fabian.94@gmail.com

View File

@ -16,4 +16,21 @@ Redis also supports trivial-to-setup master-slave replication, with very
fast non-blocking first synchronization, auto-reconnection on net split
and so forth.
Plugin Changelog
----------------
1.1
* Add a button to reset all databases (contributed by Michael Muenz)
1.0
* Allow interface and port selection
* Syslog or file-based logging
* Allow password protection
* Connection limits
* Performance monitoring of slow connections
WWW: http://redis.io/

View File

@ -2,6 +2,7 @@
/*
* Copyright (C) 2017 Fabian Franz
* Copyright (C) 2019 Michael Muenz <m.muenz@gmail.com>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -29,6 +30,7 @@
namespace OPNsense\Redis\Api;
use OPNsense\Base\ApiMutableServiceControllerBase;
use OPNsense\Core\Backend;
class ServiceController extends ApiMutableServiceControllerBase
{
@ -36,4 +38,15 @@ class ServiceController extends ApiMutableServiceControllerBase
protected static $internalServiceTemplate = 'OPNsense/Redis';
protected static $internalServiceEnabled = 'general.enabled';
protected static $internalServiceName = 'redis';
/**
* remove database folder
* @return array
*/
public function resetdbAction()
{
$backend = new Backend();
$response = $backend->configdRun("redis resetdb");
return array("response" => $response);
}
}

View File

@ -1,6 +1,7 @@
{#
# Copyright (C) 2017 Fabian Franz
# Copyright (C) 2014-2015 Deciso B.V.
# Copyright (C) 2019 Michael Muenz <m.muenz@gmail.com>
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@ -78,6 +79,20 @@ $( document ).ready(function() {
});
});
});
$("#resetdbAct").click(function () {
stdDialogConfirm(
'{{ lang._('Confirm database reset') }}',
'{{ lang._('Do you want to reset the database?') }}',
'{{ lang._('Yes') }}', '{{ lang._('Cancel') }}', function () {
$("#resetdbAct_progress").addClass("fa fa-spinner fa-pulse");
ajaxCall(url="/api/redis/service/resetdb", sendData={}, callback=function(data,status) {
ajaxCall(url="/api/redis/service/reconfigure", sendData={}, callback=function(data,status) {
updateServiceControlUI('redis');
$("#resetdbAct_progress").removeClass("fa fa-spinner fa-pulse");
});
});
});
});
});
</script>
@ -87,4 +102,5 @@ $( document ).ready(function() {
<div class="content-box tab-content">
{{ partial("layout_partials/base_tabs_content",['formData':settings]) }}
<button class="btn btn-default" id="resetdbAct" type="button"><b>{{ lang._('Reset') }}</b> <i id="resetdbAct_progress" class=""></i></button>
</div>

View File

@ -21,3 +21,9 @@ command:/usr/local/etc/rc.d/redis status;exit 0
parameters:
type:script_output
message:request redis status
[resetdb]
command:/usr/local/etc/rc.d/redis stop;rm -rf /var/db/redis
parameters:
type:script
message:remove all databases