MXS-1883 Maintenance is now the only user-modifiable bit for a monitored server
The request to turn maintenance off/on is a separate flag, although the actual status is still contained in the status bitfield.
This commit is contained in:
@ -476,7 +476,6 @@ void MariaDBMonitor::main_loop()
|
||||
auto new_status = mon_srv->pending_status;
|
||||
auto srv = mon_srv->server;
|
||||
srv->status = new_status;
|
||||
srv->status_pending = new_status;
|
||||
}
|
||||
|
||||
/* Check if monitor events need to be launched. */
|
||||
|
||||
@ -22,6 +22,7 @@
|
||||
#include <maxscale/protocol.h>
|
||||
#include <maxscale/protocol/mysql.h>
|
||||
#include <maxscale/router.h>
|
||||
#include <maxscale/server.hh>
|
||||
#include <maxscale/utils.h>
|
||||
|
||||
/*
|
||||
@ -329,7 +330,7 @@ static void handle_error_response(DCB *dcb, GWBUF *buffer)
|
||||
"mode.", dcb->server->name,
|
||||
dcb->server->address, dcb->server->port);
|
||||
|
||||
server_set_status(dcb->server, SERVER_MAINT);
|
||||
mxs::server_set_status(dcb->server, SERVER_MAINT, NULL);
|
||||
}
|
||||
else if (errcode == ER_ACCESS_DENIED_ERROR ||
|
||||
errcode == ER_DBACCESS_DENIED_ERROR ||
|
||||
|
||||
@ -46,7 +46,7 @@
|
||||
#include <maxscale/maxscale.h>
|
||||
#include <maxscale/modulecmd.h>
|
||||
#include <maxscale/router.h>
|
||||
#include <maxscale/server.h>
|
||||
#include <maxscale/server.hh>
|
||||
#include <maxscale/service.h>
|
||||
#include <maxscale/spinlock.h>
|
||||
#include <maxscale/users.h>
|
||||
@ -2233,7 +2233,11 @@ set_server(DCB *dcb, SERVER *server, char *bit)
|
||||
|
||||
if ((bitvalue = server_map_status(bit)) != 0)
|
||||
{
|
||||
server_set_status(server, bitvalue);
|
||||
std::string errmsg;
|
||||
if (!mxs::server_set_status(server, bitvalue, &errmsg))
|
||||
{
|
||||
dcb_printf(dcb, "%s\n", errmsg.c_str());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -2256,7 +2260,11 @@ clear_server(DCB *dcb, SERVER *server, char *bit)
|
||||
|
||||
if ((bitvalue = server_map_status(bit)) != 0)
|
||||
{
|
||||
server_clear_status(server, bitvalue);
|
||||
std::string errmsg;
|
||||
if (!mxs::server_clear_status(server, bitvalue, &errmsg))
|
||||
{
|
||||
dcb_printf(dcb, "%s", errmsg.c_str());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@ -41,6 +41,7 @@
|
||||
#include <maxscale/modutil.h>
|
||||
#include <maxscale/resultset.h>
|
||||
#include <maxscale/router.h>
|
||||
#include <maxscale/server.hh>
|
||||
#include <maxscale/service.h>
|
||||
#include <maxscale/spinlock.h>
|
||||
#include <maxscale/version.h>
|
||||
@ -392,8 +393,15 @@ void exec_set_server(DCB *dcb, MAXINFO_TREE *tree)
|
||||
int status = server_map_status(tree->right->value);
|
||||
if (status != 0)
|
||||
{
|
||||
server_set_status(server, status);
|
||||
maxinfo_send_ok(dcb);
|
||||
std::string errmsgs;
|
||||
if (mxs::server_set_status(server, status, &errmsgs))
|
||||
{
|
||||
maxinfo_send_ok(dcb);
|
||||
}
|
||||
else
|
||||
{
|
||||
maxinfo_send_error(dcb, 0, errmsgs.c_str());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -473,8 +481,15 @@ void exec_clear_server(DCB *dcb, MAXINFO_TREE *tree)
|
||||
int status = server_map_status(tree->right->value);
|
||||
if (status != 0)
|
||||
{
|
||||
server_clear_status(server, status);
|
||||
maxinfo_send_ok(dcb);
|
||||
std::string errmsgs;
|
||||
if (mxs::server_clear_status(server, status, &errmsgs))
|
||||
{
|
||||
maxinfo_send_ok(dcb);
|
||||
}
|
||||
else
|
||||
{
|
||||
maxinfo_send_error(dcb, 0, errmsgs.c_str());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user