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_;
 | |
| };
 | 
