ksconnect 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7d2d0b755faec329cae3ccad771d1fb9800f86d6
4
- data.tar.gz: 26895da666049b7027f9b0d5c420eddf9fdaf94a
3
+ metadata.gz: 1d91fc4dd993ead89d5e76a124852edf2a6090b8
4
+ data.tar.gz: e4af39026299c2e5652396a489c7c0c373d7f87c
5
5
  SHA512:
6
- metadata.gz: 905ea8c2bd106eef90ae780556e0965c5d7545ca01ab52c84678a31728d394c8962d22a0fb682f7b4a3d09b04fe2126743fd1f4da761f08f9dbe2d93cdc971a3
7
- data.tar.gz: 6b27a9f2d093170cad26551f7b578a59591b89a2e3fd8d3c223fb99c7b7c40fc58c8b5652be9dcf7787791a666cc5b5b40a12efdeb9c5617539557428c06bf18
6
+ metadata.gz: 1aef855195621760ce29beb37fb2f8c383877fc5a770c3627b98b2c67e87da71931803948def0791199efcd00b4b6346b78bb6f53f34d4f3850c2da33eee5288
7
+ data.tar.gz: 863962b0a6c006e814dd5b6d810222be3541db1804f4c1b027a2cf50cdcf546b0e10085292b5b4875f8368fdd0503462a93d649780560e600a50b462e950b271
@@ -1,11 +1,15 @@
1
+ require 'ksconnect/logs'
2
+
1
3
  class KSConnect
2
4
  class API
3
5
  class Plugin
4
6
  class Config
7
+ include Logs
8
+
5
9
  attr_accessor :on_initialize, :on_update, :on_teardown, :on_push
6
10
 
7
11
  def initialize
8
- @on_initialize = @on_update = @on_teardown = @on_push = lambda { |msg| "No callback set for msg: #{msg}" }
12
+ @on_initialize = @on_update = @on_teardown = @on_push = lambda { |msg| logger.debug "No callback set for msg: #{msg}" }
9
13
  end
10
14
  end
11
15
  end
data/lib/ksconnect/api.rb CHANGED
@@ -16,7 +16,7 @@ class KSConnect
16
16
  # set the main plugin
17
17
  unless enabled_plugins.empty?
18
18
  main_plugin_name = enabled_plugins.shift
19
- @plugin = @plugins[main_plugin_name] = KSConnect::API::Plugin.new(plugin_name.to_s, true)
19
+ @plugin = @plugins[main_plugin_name] = KSConnect::API::Plugin.new(main_plugin_name.to_s, true)
20
20
  end
21
21
 
22
22
  # init the other plugins
@@ -2,54 +2,54 @@ require 'active_support/core_ext/object/try'
2
2
 
3
3
  class KSConnect
4
4
  module Helpers
5
- def ip_address_for(domain)
6
- if all_domains[domain.name]
7
- all_domains[domain.name].ip_address
5
+ def ip_address_for(domain_name)
6
+ if all_domains[domain_name]
7
+ all_domains[domain_name].ip_address
8
8
  else
9
9
  "kloudsec.com" # go to something safe if ip is invalid
10
10
  end
11
11
  end
12
12
 
13
- def https_enabled?(domain)
14
- k, c = ssl_key_and_cert_for(domain)
13
+ def https_enabled?(domain_name)
14
+ k, c = ssl_key_and_cert_for(domain_name)
15
15
  k && c
16
16
  end
17
17
 
18
- def https_redirect_enabled?(domain)
19
- https_enabled?(domain) && plugins[:ssl].domains[domain.name].data['redirect'] == "true"
18
+ def https_redirect_enabled?(domain_name)
19
+ https_enabled?(domain_name) && plugins[:ssl].domains[domain_name].data['redirect'] == "true"
20
20
  end
21
21
 
22
- def https_rewriting_enabled?(domain)
23
- https_enabled?(domain) && plugins[:ssl].domains[domain.name].data['rewriteHTTPS'] == "true"
22
+ def https_rewriting_enabled?(domain_name)
23
+ https_enabled?(domain_name) && plugins[:ssl].domains[domain_name].data['rewriteHTTPS'] == "true"
24
24
  end
25
25
 
26
- def waf_enabled?(domain)
27
- plugins[:web_shield].domains.has_key?(domain.name)
26
+ def waf_enabled?(domain_name)
27
+ plugins[:web_shield].domains.has_key?(domain_name)
28
28
  end
29
29
 
30
- def waf_learning?(domain)
31
- waf_enabled?(domain) && plugins[:web_shield].domains[domain.name].data['learning']
30
+ def waf_learning?(domain_name)
31
+ waf_enabled?(domain_name) && plugins[:web_shield].domains[domain_name].data['learning']
32
32
  end
33
33
 
34
- def waf_location_config(domain)
35
- waf_enabled?(domain) ? plugins[:web_shield].domains[domain.name].private_data['location.conf'] : ""
34
+ def waf_location_config(domain_name)
35
+ waf_enabled?(domain_name) ? plugins[:web_shield].domains[domain_name].private_data['location.conf'] : ""
36
36
  end
37
37
 
38
- def waf_server_config(domain)
39
- waf_enabled?(domain) ? plugins[:web_shield].domains[domain.name].private_data['server.conf'] : ""
38
+ def waf_server_config(domain_name)
39
+ waf_enabled?(domain_name) ? plugins[:web_shield].domains[domain_name].private_data['server.conf'] : ""
40
40
  end
41
41
 
42
- def pagespeed_enabled?(domain)
43
- plugins[:mod_cache].domains.has_key?(domain.name)
42
+ def pagespeed_enabled?(domain_name)
43
+ plugins[:mod_cache].domains.has_key?(domain_name)
44
44
  end
45
45
 
46
- def pending_autossl?(domain)
47
- p, k = autossl_verification_path_and_key_for(domain)
48
- plugins[:autossl].domains.has_key?(domain.name) && p && k
46
+ def pending_autossl?(domain_name)
47
+ p, k = autossl_verification_path_and_key_for(domain_name)
48
+ plugins[:autossl].domains.has_key?(domain_name) && p && k
49
49
  end
50
50
 
51
- def autossl_verification_path_and_key_for(domain)
52
- d = plugins[:autossl].domains[domain.name].try(:private_data)
51
+ def autossl_verification_path_and_key_for(domain_name)
52
+ d = plugins[:autossl].domains[domain_name].try(:private_data)
53
53
  if d
54
54
  return d['verify_endpoint'], d['verify_content']
55
55
  else
@@ -57,9 +57,9 @@ class KSConnect
57
57
  end
58
58
  end
59
59
 
60
- def ssl_key_and_cert_for(domain)
61
- ssl = plugins[:ssl].domains[domain.name].try(:private_data)
62
- autossl = plugins[:autossl].domains[domain.name].try(:private_data)
60
+ def ssl_key_and_cert_for(domain_name)
61
+ ssl = plugins[:ssl].domains[domain_name].try(:private_data)
62
+ autossl = plugins[:autossl].domains[domain_name].try(:private_data)
63
63
 
64
64
  if ssl && ssl['key'] && ssl['cert']
65
65
  return ssl['key'], ssl['cert']
@@ -15,11 +15,12 @@ module Logs
15
15
 
16
16
  module ClassMethods
17
17
  def logger
18
- return @@_logger if @@_logger
18
+ return @_logger if @_logger
19
19
 
20
- @@_logger = Logger.new(STDOUT)
21
- @@_logger.level = "Logger::#{ENV['LOG_LEVEL'] || 'INFO'}".constantize
22
- @@_logger
20
+ STDOUT.sync = true
21
+ @_logger = Logger.new(STDOUT)
22
+ @_logger.level = "Logger::#{ENV['LOG_LEVEL'] || 'INFO'}".constantize
23
+ @_logger
23
24
  end
24
25
  end
25
- end
26
+ end
data/lib/ksconnect.rb CHANGED
@@ -34,25 +34,29 @@ class KSConnect
34
34
  end
35
35
 
36
36
  def self.thread_pool
37
+ Thread::Pool.abort_on_exception = true
37
38
  @@thread_pool ||= Thread.pool(MIN_THREADS, MAX_THREADS)
38
39
  end
39
40
 
40
41
  def self.channel(name)
41
42
  Thread.start do
42
43
  begin
43
- Redis.new.subscribe(name) do |on|
44
+ Redis.new(driver: :hiredis).subscribe(name) do |on|
44
45
  logger.info "Subscribing to redis channel: #{name}"
45
46
  on.message do |_channel, message|
46
47
  thread_pool.process do
47
- yield message
48
- $stdout.flush
48
+ begin
49
+ yield message
50
+ rescue => error
51
+ logger.error "#{error.message} on redis channel #{name}:"
52
+ logger.error error
53
+ end
49
54
  end
50
55
  end
51
56
  end
52
57
  rescue => error
53
- logger.error "#{error} on redis channel #{name}, restarting in 0.5s"
58
+ logger.error "Fatal error on redis channel #{name}, restarting in 0.5s"
54
59
  logger.error error.backtrace.join("\n")
55
- $stdout.flush
56
60
  sleep 0.5
57
61
  retry
58
62
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ksconnect
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ivan Poon