OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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 control-node.
13 class Options {
14 public:
15  Options();
16  bool Parse(EventManager &evm, int argc, char **argv);
17 
18  std::string bgp_config_file() const { return bgp_config_file_; }
19  uint16_t bgp_port() const { return bgp_port_; }
20  std::vector<std::string> collector_server_list() const {
22  }
23  std::vector<std::string> randomized_collector_server_list() const {
25  }
26  std::string config_file() const { return config_file_; };
27  std::string hostname() const { return hostname_; }
28  std::string host_ip() const { return host_ip_; }
29  uint16_t http_server_port() const { return http_server_port_; }
30  std::string log_category() const { return log_category_; }
31  bool log_disable() const { return log_disable_; }
32  std::string log_file() const { return log_file_; }
33  std::string log_property_file() const { return log_property_file_; }
34  int log_files_count() const { return log_files_count_; }
35  long log_file_size() const { return log_file_size_; }
36  std::string log_level() const { return log_level_; }
37  bool log_local() const { return log_local_; }
38  bool use_syslog() const { return use_syslog_; }
39  std::string syslog_facility() const { return syslog_facility_; }
40  bool mvpn_ipv4_enable() const { return mvpn_ipv4_enable_; }
41  bool task_track_run_time() const { return task_track_run_time_; }
42  std::string config_db_user() const {
44  }
45  std::string config_db_password() const {
47  }
48  bool config_db_use_ssl() const {
50  }
51  std::vector<std::string> config_db_server_list() const {
53  }
54  std::vector<std::string> rabbitmq_server_list() const {
56  }
57  std::string rabbitmq_user() const {
59  }
60  std::string rabbitmq_password() const {
62  }
63  bool rabbitmq_ssl_enabled() const {
65  }
66  bool using_etcd_client() const {
68  }
70  return configdb_options_;
71  }
72  uint16_t xmpp_port() const { return xmpp_port_; }
73  bool xmpp_auth_enabled() const { return xmpp_auth_enable_; }
74  std::string xmpp_server_cert() const { return xmpp_server_cert_; }
75  std::string xmpp_server_key() const { return xmpp_server_key_; }
76  std::string xmpp_ca_cert() const { return xmpp_ca_cert_; }
77  bool test_mode() const { return test_mode_; }
79  int tcp_hold_time() const { return tcp_hold_time_; }
80  bool optimize_snat() const { return optimize_snat_; }
83  const std::string cassandra_user() const { return cassandra_user_; }
84  const std::string cassandra_password() const { return cassandra_password_; }
85  const std::vector<std::string> cassandra_server_list() const {
87  }
88  const SandeshConfig &sandesh_config() const { return sandesh_config_; }
89 
90  void ParseReConfig(bool force_reinit);
91 
94  }
95 
96 private:
97 
98  bool Process(int argc, char *argv[],
99  boost::program_options::options_description &cmdline_options);
100  void Initialize(EventManager &evm,
101  boost::program_options::options_description &options);
102  void ParseConfigOptions(const boost::program_options::variables_map
103  &var_map);
104  uint32_t GenerateHash(const std::vector<std::string> &list);
105  uint32_t GenerateHash(const ConfigClientOptions &config);
106 
107  std::string bgp_config_file_;
108  uint16_t bgp_port_;
109  std::vector<std::string> collector_server_list_;
110  std::vector<std::string> randomized_collector_server_list_;
113  std::string config_file_;
114  std::string hostname_;
115  std::string host_ip_;
117  std::string log_category_;
119  std::string log_file_;
120  std::string log_property_file_;
123  std::string log_level_;
126  std::string syslog_facility_;
130  uint16_t xmpp_port_;
132  std::string xmpp_server_cert_;
133  std::string xmpp_server_key_;
134  std::string xmpp_ca_cert_;
142  std::string cassandra_user_;
143  std::string cassandra_password_;
144  std::vector<std::string> cassandra_server_list_;
145  std::vector<std::string> default_collector_server_list_;
147  boost::program_options::options_description config_file_options_;
149 };
bool optimize_snat_
Definition: options.h:138
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: options.h:36
int log_files_count() const
Definition: options.h:34
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: options.h:77
SandeshConfig sandesh_config_
Definition: options.h:146
bool gr_helper_bgp_disable_
Definition: options.h:140
void ParseConfigOptions(const boost::program_options::variables_map &var_map)
Definition: options.cc:362
std::string config_db_password() const
Definition: options.h:45
const ConfigClientOptions & configdb_options() const
Definition: options.h:69
bool use_syslog_
Definition: options.h:125
ConfigClientOptions configdb_options_
Definition: options.h:129
uint16_t http_server_port() const
Definition: options.h:29
long log_file_size_
Definition: options.h:122
bool using_etcd_client() const
Definition: options.h:66
std::string hostname_
Definition: options.h:114
long log_file_size() const
Definition: options.h:35
std::string config_file() const
Definition: options.h:26
uint16_t http_server_port_
Definition: options.h:116
uint32_t collector_chksum_
Definition: options.h:111
std::vector< std::string > rabbitmq_server_list() const
Definition: options.h:54
uint16_t xmpp_port_
Definition: options.h:130
std::string xmpp_ca_cert_
Definition: options.h:134
bool mvpn_ipv4_enable() const
Definition: options.h:40
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)
std::string xmpp_server_cert() const
Definition: options.h:74
std::string xmpp_server_key_
Definition: options.h:133
bool log_disable() const
Definition: options.h:31
bool collectors_configured() const
Definition: options.h:78
std::vector< std::string > collector_server_list() const
Definition: options.h:20
std::string host_ip() const
Definition: options.h:28
void ParseReConfig()
Definition: dns_options.cc:369
std::vector< std::string > config_db_server_list() const
Definition: options.h:51
std::string log_property_file() const
Definition: options.h:33
void set_config_client_manager(ConfigClientManager *mgr)
Definition: options.h:92
std::vector< std::string > randomized_collector_server_list() const
Definition: options.h:23
std::string xmpp_server_cert_
Definition: options.h:132
const std::string cassandra_password() const
Definition: options.h:84
std::string config_db_user() const
Definition: options.h:42
bool mvpn_ipv4_enable_
Definition: options.h:127
static Options options
std::vector< std::string > collector_server_list_
Definition: options.h:109
Options()
Definition: options.cc:27
const std::vector< std::string > cassandra_server_list() const
Definition: options.h:85
bool config_db_use_ssl() const
Definition: options.h:48
bool xmpp_auth_enabled() const
Definition: options.h:73
bool log_local() const
Definition: options.h:37
bool log_disable_
Definition: options.h:118
const SandeshConfig & sandesh_config() const
Definition: options.h:88
std::string bgp_config_file() const
Definition: options.h:18
uint16_t bgp_port_
Definition: options.h:108
std::string syslog_facility() const
Definition: options.h:39
std::string log_file() const
Definition: options.h:32
bool gr_helper_xmpp_disable_
Definition: options.h:141
std::string rabbitmq_password() const
Definition: options.h:60
std::string xmpp_server_key() const
Definition: options.h:75
std::string log_category() const
Definition: options.h:30
std::string hostname() const
Definition: options.h:27
std::string host_ip_
Definition: options.h:115
bool collectors_configured_
Definition: options.h:136
std::vector< std::string > cassandra_server_list_
Definition: options.h:144
const std::string cassandra_user() const
Definition: options.h:83
std::string rabbitmq_user() const
Definition: options.h:57
bool test_mode_
Definition: options.h:135
std::vector< std::string > config_db_server_list
int log_files_count_
Definition: options.h:121
bool gr_helper_bgp_disable() const
Definition: options.h:81
uint32_t sandesh_ratelimit_
Definition: options.h:139
std::vector< std::string > rabbitmq_server_list
std::string log_property_file_
Definition: options.h:120
int tcp_hold_time() const
Definition: options.h:79
std::string cassandra_user_
Definition: options.h:142
bool log_local_
Definition: options.h:124
bool rabbitmq_ssl_enabled() const
Definition: options.h:63
bool use_syslog() const
Definition: options.h:38
std::vector< std::string > randomized_collector_server_list_
Definition: options.h:110
bool gr_helper_xmpp_disable() const
Definition: options.h:82
bool task_track_run_time_
Definition: options.h:128
uint16_t xmpp_port() const
Definition: options.h:72
bool Parse(EventManager &evm, int argc, char **argv)
uint16_t bgp_port() const
Definition: options.h:19
std::string log_level_
Definition: options.h:123
std::string xmpp_ca_cert() const
Definition: options.h:76
bool xmpp_auth_enable_
Definition: options.h:131
std::string bgp_config_file_
Definition: options.h:107
int tcp_hold_time_
Definition: options.h:137
bool task_track_run_time() const
Definition: options.h:41
static EventManager evm
bool optimize_snat() const
Definition: options.h:80
std::string cassandra_password_
Definition: options.h:143