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

(cherry picked from commit 784f372aa6)
(cherry picked from commit 610131d2c8)
This commit is contained in:
Michael 2019-05-23 08:42:00 +02:00 committed by Franco Fichtner
parent 3ae96c0dcc
commit 40d8ef483b
5 changed files with 55 additions and 2 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,11 +1,12 @@
{#
# 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
# modification, are permitted provided that the following conditions are met:
#
# 1. Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
#
@ -47,6 +48,8 @@ $( document ).ready(function() {
history.pushState(null, null, e.target.hash);
});
$('#save_redis-general-settings').after('<button class="btn btn-default" style="margin-left:5px" id="resetdbAct" type="button"><b>{{ lang._('Reset') }}</b> <i id="resetdbAct_progress" class=""></i></button>');
// form save event handlers for all defined forms
$('[id*="save_"]').each(function(){
$(this).click(function() {
@ -78,6 +81,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>

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