143 lines
3.1 KiB
C++
143 lines
3.1 KiB
C++
#pragma once
|
|
|
|
#include "testconnections.h"
|
|
#include <string>
|
|
#include <set>
|
|
|
|
class Config
|
|
{
|
|
public:
|
|
Config(TestConnections* parent);
|
|
~Config();
|
|
|
|
/**
|
|
* Service identifiers for listener creation
|
|
*/
|
|
enum Service
|
|
{
|
|
SERVICE_RWSPLIT = 0,
|
|
SERVICE_RCONN_SLAVE = 1,
|
|
SERVICE_RCONN_MASTER = 2
|
|
};
|
|
|
|
/**
|
|
* Add a server to all services and monitors
|
|
*
|
|
* @param num Backend number
|
|
*/
|
|
void add_server(int num);
|
|
|
|
/**
|
|
* Add all created servers to an object
|
|
*
|
|
* @param object Object to add servers to
|
|
*/
|
|
void add_created_servers(const char *object);
|
|
|
|
/**
|
|
* Remove a server
|
|
*
|
|
* @param num Backend number
|
|
*/
|
|
void remove_server(int num);
|
|
|
|
/**
|
|
* Create a new server
|
|
*
|
|
* @param num Backend number
|
|
*/
|
|
void create_server(int num);
|
|
|
|
/**
|
|
* Alter a server
|
|
*
|
|
* @param num Backend number
|
|
* @param key Key to alter
|
|
* @oaram value Value for @c key, empty string for no value
|
|
*/
|
|
void alter_server(int num, const char *key, const char *value);
|
|
void alter_server(int num, const char *key, int value);
|
|
void alter_server(int num, const char *key, float value);
|
|
|
|
/**
|
|
* Destroy a server
|
|
* @param num Backend number
|
|
*/
|
|
void destroy_server(int num);
|
|
|
|
/**
|
|
* Test that server count is at the expected amount
|
|
* @param expected How many servers are expected to exist
|
|
* @return True if the number of servers is @c expected
|
|
*/
|
|
bool check_server_count(int expected);
|
|
|
|
/**
|
|
* Create the monitor
|
|
* @param type The name of the monitor module to use
|
|
* @param interval Monitoring interval
|
|
*/
|
|
void create_monitor(const char *name, const char *module, int interval = 1000);
|
|
|
|
/**
|
|
* Start the created monitor
|
|
*/
|
|
void start_monitor(const char *name);
|
|
|
|
/**
|
|
* Alter a monitor
|
|
* @param key Key to alter
|
|
* @oaram value Value for @c key, empty string for no value
|
|
*/
|
|
void alter_monitor(const char *name, const char *key, const char *value);
|
|
void alter_monitor(const char *name, const char *key, int value);
|
|
void alter_monitor(const char *name, const char *key, float value);
|
|
|
|
/**
|
|
* Destroy the monitor
|
|
*/
|
|
void destroy_monitor(const char *name);
|
|
|
|
/**
|
|
* Restart all created monitors
|
|
*/
|
|
void restart_monitors();
|
|
|
|
/**
|
|
* Create a listener
|
|
*
|
|
* @param service Service where listener is created
|
|
*/
|
|
void create_listener(Service service);
|
|
|
|
|
|
/**
|
|
* Create a listener with SSL enabled
|
|
*
|
|
* @param service Service where SSL listener is created
|
|
*/
|
|
void create_ssl_listener(Service service);
|
|
|
|
/**
|
|
* Destroy a listener
|
|
*
|
|
* @param service Service whose listener is destroyed
|
|
*/
|
|
void destroy_listener(Service service);
|
|
|
|
/**
|
|
* Create all basic listeners
|
|
*/
|
|
void create_all_listeners();
|
|
|
|
/**
|
|
* Reset the configuration to a standard state
|
|
*/
|
|
void reset();
|
|
|
|
private:
|
|
TestConnections *test_;
|
|
std::set<int> created_servers_;
|
|
std::set<std::string> created_monitors_;
|
|
};
|