Module: BlackStack::Pampa
- Defined in:
- lib/pampa_workers.rb
Constant Summary collapse
- SLEEP_SECONDS =
10- @@division_name =
nil- @@timeout =
7- @@api_key =
Api-key of the client who will be the owner of a process.
nil- @@api_protocol =
Protocol, HTTP or HTTPS, of the BlackStack server where this process will be registered.
nil- @@api_domain =
Domain of the BlackStack server where this process will be registered.
nil- @@api_port =
Port of the BlackStack server where this process will be registered.
nil- @@storage_folder =
path where you will store the data of each client
nil- @@storage_sub_folders =
[]
- @@id_timezone_default =
default timezome for any new user
nil- @@farm_external_ip_addresses =
Array of external IP addresses of the servers where farms are running. If you have many servers running behind a NAT server, only add the IP of the external gateway here. This array is used to know if a worker is running inside your farm datacenter, or it is running in the computer of someone else.
[]
- @@db_url =
Central database connection parameters
nil- @@db_port =
nil- @@db_name =
nil- @@db_user =
nil- @@db_password =
nil
Class Method Summary collapse
- .api_domain ⇒ Object
- .api_key ⇒ Object
- .api_port ⇒ Object
- .api_protocol ⇒ Object
-
.api_url ⇒ Object
get the full URL of the worker api server.
-
.connection_descriptor ⇒ Object
TODO: doc me!.
- .db_connection ⇒ Object
- .db_name ⇒ Object
- .db_password ⇒ Object
- .db_port ⇒ Object
- .db_url ⇒ Object
- .db_user ⇒ Object
- .division_name ⇒ Object
- .farm_external_ip_addresses ⇒ Object
- .id_timezone_default ⇒ Object
- .require_db_classes ⇒ Object
- .set_api_key(s) ⇒ Object
- .set_api_url(h) ⇒ Object
-
.set_db_params(h) ⇒ Object
Set connection params to the central database.
- .set_division_name(s) ⇒ Object
- .set_farm_external_ip_addresses(a) ⇒ Object
- .set_id_timezone_default(id) ⇒ Object
- .set_storage_folder(path) ⇒ Object
- .set_storage_sub_folders(a) ⇒ Object
- .set_timeout(n) ⇒ Object
- .storage_folder ⇒ Object
- .storage_sub_folders ⇒ Object
- .timeout ⇒ Object
Class Method Details
.api_domain ⇒ Object
73 74 75 |
# File 'lib/pampa_workers.rb', line 73 def self.api_domain @@api_domain end |
.api_key ⇒ Object
57 58 59 |
# File 'lib/pampa_workers.rb', line 57 def self.api_key() @@api_key end |
.api_port ⇒ Object
81 82 83 |
# File 'lib/pampa_workers.rb', line 81 def self.api_port @@api_port end |
.api_protocol ⇒ Object
65 66 67 |
# File 'lib/pampa_workers.rb', line 65 def self.api_protocol @@api_protocol end |
.api_url ⇒ Object
get the full URL of the worker api server
86 87 88 |
# File 'lib/pampa_workers.rb', line 86 def self.api_url() "#{BlackStack::Pampa::api_protocol}://#{BlackStack::Pampa::api_domain}:#{BlackStack::Pampa::api_port}" end |
.connection_descriptor ⇒ Object
TODO: doc me!
199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 |
# File 'lib/pampa_workers.rb', line 199 def self.connection_descriptor() ret = nil # validar que el formato no sea nulo if (self.division_name.to_s.length == 0) raise "Division name expected." end if (self.division_name == "local") ret = { :adapter => 'tinytds', :dataserver => BlackStack::Pampa::db_url, # IP or hostname :port => BlackStack::Pampa::db_port, # Required when using other that 1433 (default) :database => BlackStack::Pampa::db_name, :user => BlackStack::Pampa::db_user, :password => BlackStack::Pampa::db_password, :timeout => BlackStack::Pampa::timeout } else url = "#{BlackStack::Pampa::api_url}/api1.2/division/get.json" res = BlackStack::Netting::call_post(url, { 'api_key' => BlackStack::Pampa::api_key, 'dname' => "#{self.division_name}", }) parsed = JSON.parse(res.body) if (parsed["status"] != BlackStack::Netting::SUCCESS) raise "Error getting connection string: #{parsed["status"]}" else wid = parsed["value"] ret = { :adapter => 'tinytds', :dataserver => parsed["db_url"], # IP or hostname :port => parsed["db_port"], # only required if port is different than 1433 :database => parsed["db_name"], :user => parsed["db_user"], :password => parsed["db_password"], :timeout => BlackStack::Pampa::timeout } end end ret end |
.db_connection ⇒ Object
246 247 248 |
# File 'lib/pampa_workers.rb', line 246 def self.db_connection() Sequel.connect(BlackStack::Pampa::connection_descriptor) end |
.db_name ⇒ Object
175 176 177 |
# File 'lib/pampa_workers.rb', line 175 def self.db_name @@db_name end |
.db_password ⇒ Object
185 186 187 |
# File 'lib/pampa_workers.rb', line 185 def self.db_password @@db_password end |
.db_port ⇒ Object
170 171 172 |
# File 'lib/pampa_workers.rb', line 170 def self.db_port @@db_port end |
.db_url ⇒ Object
165 166 167 |
# File 'lib/pampa_workers.rb', line 165 def self.db_url @@db_url end |
.db_user ⇒ Object
180 181 182 |
# File 'lib/pampa_workers.rb', line 180 def self.db_user @@db_user end |
.division_name ⇒ Object
36 37 38 |
# File 'lib/pampa_workers.rb', line 36 def self.division_name() @@division_name end |
.farm_external_ip_addresses ⇒ Object
148 149 150 |
# File 'lib/pampa_workers.rb', line 148 def self.farm_external_ip_addresses() @@farm_external_ip_addresses end |
.id_timezone_default ⇒ Object
131 132 133 |
# File 'lib/pampa_workers.rb', line 131 def self.id_timezone_default() @@id_timezone_default end |
.require_db_classes ⇒ Object
251 252 253 254 |
# File 'lib/pampa_workers.rb', line 251 def self.require_db_classes() # You have to load all the Sinatra classes after connect the database. require_relative '../lib/pampa-local.rb' end |
.set_api_key(s) ⇒ Object
91 92 93 |
# File 'lib/pampa_workers.rb', line 91 def self.set_api_key(s) @@api_key = s end |
.set_api_url(h) ⇒ Object
96 97 98 99 100 101 |
# File 'lib/pampa_workers.rb', line 96 def self.set_api_url(h) @@api_key = h[:api_key] @@api_protocol = h[:api_protocol] @@api_domain = h[:api_domain] @@api_port = h[:api_port] end |
.set_db_params(h) ⇒ Object
Set connection params to the central database
190 191 192 193 194 195 196 |
# File 'lib/pampa_workers.rb', line 190 def self.set_db_params(h) @@db_url = h[:db_url] @@db_port = h[:db_port] @@db_name = h[:db_name] @@db_user = h[:db_user] @@db_password = h[:db_password] end |
.set_division_name(s) ⇒ Object
41 42 43 |
# File 'lib/pampa_workers.rb', line 41 def self.set_division_name(s) @@division_name = s end |
.set_farm_external_ip_addresses(a) ⇒ Object
153 154 155 |
# File 'lib/pampa_workers.rb', line 153 def self.set_farm_external_ip_addresses(a) @@farm_external_ip_addresses = a end |
.set_id_timezone_default(id) ⇒ Object
136 137 138 |
# File 'lib/pampa_workers.rb', line 136 def self.set_id_timezone_default(id) @@id_timezone_default = id end |
.set_storage_folder(path) ⇒ Object
116 117 118 |
# File 'lib/pampa_workers.rb', line 116 def self.set_storage_folder(path) @@storage_folder = path end |
.set_storage_sub_folders(a) ⇒ Object
119 120 121 |
# File 'lib/pampa_workers.rb', line 119 def self.set_storage_sub_folders(a) @@storage_sub_folders = a end |
.set_timeout(n) ⇒ Object
50 51 52 |
# File 'lib/pampa_workers.rb', line 50 def self.set_timeout(n) @@timeout = n end |
.storage_folder ⇒ Object
108 109 110 |
# File 'lib/pampa_workers.rb', line 108 def self.storage_folder() @@storage_folder end |
.storage_sub_folders ⇒ Object
111 112 113 |
# File 'lib/pampa_workers.rb', line 111 def self.storage_sub_folders() @@storage_sub_folders end |
.timeout ⇒ Object
45 46 47 |
# File 'lib/pampa_workers.rb', line 45 def self.timeout() @@timeout end |