OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
dns_options.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2013 Juniper Networks, Inc. All rights reserved.
3  */
4 
5 #include <boost/program_options.hpp>
7 #include "io/event_manager.h"
8 #include "sandesh/sandesh.h"
9 
11 
12 // Process command line/configuration file options for dns.
13 class Options {
14 public:
15  Options();
16  bool Parse(EventManager &evm, int argc, char *argv[]);
17  void ParseReConfig();
18 
19  std::vector<std::string> collector_server_list() const {
21  }
22  std::vector<std::string> randomized_collector_server_list() const {
24  }
25  std::string dns_config_file() const { return dns_config_file_; }
26  std::string config_file() const { return config_file_; };
27  const std::string & named_config_file() const { return named_config_file_; }
28  const std::string & named_config_dir() const { return named_config_dir_; }
29  const std::string & named_log_file() const { return named_log_file_; }
30  const std::string & rndc_config_file() const { return rndc_config_file_; }
31  const std::string & rndc_secret() const { return rndc_secret_; }
32  const std::string & named_max_cache_size() const {
33  return named_max_cache_size_;
34  }
36  const uint16_t named_retransmission_interval() {
38  }
39  std::string hostname() const { return hostname_; }
40  std::string host_ip() const { return host_ip_; }
41  uint16_t http_server_port() const { return http_server_port_; }
42  uint16_t dns_server_port() const { return dns_server_port_; }
43  std::string log_category() const { return log_category_; }
44  bool log_disable() const { return log_disable_; }
45  std::string log_file() const { return log_file_; }
46  std::string log_property_file() const { return log_property_file_; }
47  int log_files_count() const { return log_files_count_; }
48  long log_file_size() const { return log_file_size_; }
49  std::string log_level() const { return log_level_; }
50  bool log_local() const { return log_local_; }
51  bool use_syslog() const { return use_syslog_; }
52  std::string syslog_facility() const { return syslog_facility_; }
53  std::string config_db_user() const {
55  }
56  std::string config_db_password() const {
58  }
59  bool config_db_use_ssl() const {
61  }
62  std::vector<std::string> config_db_server_list() const {
64  }
65  std::vector<std::string> rabbitmq_server_list() const {
67  }
68  std::string rabbitmq_user() const {
70  }
71  std::string rabbitmq_password() const {
73  }
74  bool rabbitmq_ssl_enabled() const {
76  }
78  return configdb_options_;
79  }
80  bool xmpp_auth_enabled() const { return xmpp_auth_enable_; }
81  std::string xmpp_server_cert() const { return xmpp_server_cert_; }
82  std::string xmpp_server_key() const { return xmpp_server_key_; }
83  std::string xmpp_ca_cert() const { return xmpp_ca_cert_; }
84  bool test_mode() const { return test_mode_; }
86  const SandeshConfig &sandesh_config() const {
87  return sandesh_config_;
88  }
89 
92  }
93 
94 private:
95 
96  void Process(int argc, char *argv[],
97  boost::program_options::options_description &cmdline_options);
99  boost::program_options::options_description &options);
100  void ParseConfigOptions(const boost::program_options::variables_map
101  &var_map);
102  uint32_t GenerateHash(const std::vector<std::string> &list);
103  uint32_t GenerateHash(const ConfigClientOptions &config);
104 
105  std::vector<std::string> collector_server_list_;
106  std::vector<std::string> randomized_collector_server_list_;
107  uint32_t collector_chksum_;
108  uint32_t configdb_chksum_;
109  std::string dns_config_file_;
110  std::string config_file_;
111 
112  std::string named_config_file_;
113  std::string named_config_dir_;
114  std::string named_log_file_;
115  std::string rndc_config_file_;
116  std::string rndc_secret_;
120 
121  std::string hostname_;
122  std::string host_ip_;
123  uint16_t http_server_port_;
125  std::string log_category_;
126  bool log_disable_;
127  std::string log_file_;
128  std::string log_property_file_;
129  int log_files_count_;
130  long log_file_size_;
131  std::string log_level_;
132  bool log_local_;
133  bool use_syslog_;
134  std::string syslog_facility_;
136  bool xmpp_auth_enable_;
137  std::string xmpp_server_cert_;
138  std::string xmpp_server_key_;
139  std::string xmpp_ca_cert_;
140  bool test_mode_;
142  std::vector<std::string> default_collector_server_list_;
143  uint32_t send_ratelimit_;
145 
146  boost::program_options::options_description config_file_options_;
148 };
uint32_t send_ratelimit_
Definition: dns_options.h:143
uint32_t configdb_chksum_
Definition: options.h:112
boost::program_options::options_description config_file_options_
Definition: options.h:147
std::string log_file_
Definition: options.h:119
std::string config_file_
Definition: options.h:113
std::string syslog_facility_
Definition: options.h:126
bool Process(int argc, char *argv[], boost::program_options::options_description &cmdline_options)
std::string log_level() const
Definition: dns_options.h:49
int log_files_count() const
Definition: dns_options.h:47
uint32_t GenerateHash(const std::vector< std::string > &list)
Definition: options.cc:221
ConfigClientManager * config_client_manager_
Definition: options.h:148
bool test_mode() const
Definition: dns_options.h:84
SandeshConfig sandesh_config_
Definition: options.h:146
void ParseConfigOptions(const boost::program_options::variables_map &var_map)
Definition: options.cc:362
std::string config_db_password() const
Definition: dns_options.h:56
const ConfigClientOptions & configdb_options() const
Definition: dns_options.h:77
bool use_syslog_
Definition: options.h:125
ConfigClientOptions configdb_options_
Definition: options.h:129
uint16_t http_server_port() const
Definition: dns_options.h:41
const uint16_t named_max_retransmissions()
Definition: dns_options.h:35
std::string named_log_file_
Definition: dns_options.h:114
long log_file_size_
Definition: options.h:122
std::string named_config_dir_
Definition: dns_options.h:113
std::string hostname_
Definition: options.h:114
long log_file_size() const
Definition: dns_options.h:48
std::string config_file() const
Definition: dns_options.h:26
uint16_t http_server_port_
Definition: options.h:116
const std::string & rndc_secret() const
Definition: dns_options.h:31
uint32_t collector_chksum_
Definition: options.h:111
std::vector< std::string > rabbitmq_server_list() const
Definition: dns_options.h:65
std::string xmpp_ca_cert_
Definition: options.h:134
std::string dns_config_file_
Definition: dns_options.h:109
std::string named_config_file_
Definition: dns_options.h:112
std::vector< std::string > default_collector_server_list_
Definition: options.h:145
std::string log_category_
Definition: options.h:117
void Initialize(EventManager &evm, boost::program_options::options_description &options)
uint16_t dns_server_port() const
Definition: dns_options.h:42
const std::string & named_config_file() const
Definition: dns_options.h:27
std::string xmpp_server_cert() const
Definition: dns_options.h:81
std::string xmpp_server_key_
Definition: options.h:133
bool log_disable() const
Definition: dns_options.h:44
bool collectors_configured() const
Definition: dns_options.h:85
std::vector< std::string > collector_server_list() const
Definition: dns_options.h:19
std::string host_ip() const
Definition: dns_options.h:40
void ParseReConfig()
Definition: dns_options.cc:369
std::vector< std::string > config_db_server_list() const
Definition: dns_options.h:62
std::string log_property_file() const
Definition: dns_options.h:46
void set_config_client_manager(ConfigClientManager *mgr)
Definition: dns_options.h:90
std::vector< std::string > randomized_collector_server_list() const
Definition: dns_options.h:22
std::string xmpp_server_cert_
Definition: options.h:132
std::string config_db_user() const
Definition: dns_options.h:53
const std::string & named_config_dir() const
Definition: dns_options.h:28
static Options options
std::vector< std::string > collector_server_list_
Definition: options.h:109
const uint16_t named_retransmission_interval()
Definition: dns_options.h:36
uint16_t named_max_retransmissions_
Definition: dns_options.h:118
Options()
Definition: options.cc:27
bool config_db_use_ssl() const
Definition: dns_options.h:59
bool xmpp_auth_enabled() const
Definition: dns_options.h:80
std::string rndc_config_file_
Definition: dns_options.h:115
bool log_local() const
Definition: dns_options.h:50
bool log_disable_
Definition: options.h:118
const SandeshConfig & sandesh_config() const
Definition: dns_options.h:86
std::string syslog_facility() const
Definition: dns_options.h:52
std::string log_file() const
Definition: dns_options.h:45
std::string rabbitmq_password() const
Definition: dns_options.h:71
std::string xmpp_server_key() const
Definition: dns_options.h:82
std::string log_category() const
Definition: dns_options.h:43
const std::string & named_max_cache_size() const
Definition: dns_options.h:32
std::string hostname() const
Definition: dns_options.h:39
std::string host_ip_
Definition: options.h:115
bool collectors_configured_
Definition: options.h:136
uint16_t named_retransmission_interval_
Definition: dns_options.h:119
std::string rabbitmq_user() const
Definition: dns_options.h:68
bool test_mode_
Definition: options.h:135
std::vector< std::string > config_db_server_list
int log_files_count_
Definition: options.h:121
std::vector< std::string > rabbitmq_server_list
std::string log_property_file_
Definition: options.h:120
bool log_local_
Definition: options.h:124
bool rabbitmq_ssl_enabled() const
Definition: dns_options.h:74
bool use_syslog() const
Definition: dns_options.h:51
std::vector< std::string > randomized_collector_server_list_
Definition: options.h:110
bool Parse(EventManager &evm, int argc, char **argv)
const std::string & rndc_config_file() const
Definition: dns_options.h:30
std::string log_level_
Definition: options.h:123
std::string xmpp_ca_cert() const
Definition: dns_options.h:83
std::string rndc_secret_
Definition: dns_options.h:116
bool xmpp_auth_enable_
Definition: options.h:131
uint16_t dns_server_port_
Definition: dns_options.h:124
const std::string & named_log_file() const
Definition: dns_options.h:29
std::string named_max_cache_size_
Definition: dns_options.h:117
static EventManager evm
std::string dns_config_file() const
Definition: dns_options.h:25