dendrite 0.5.7 → 0.5.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3cf966fd074a2bd72ee771148bd063bc0b6c4453
4
- data.tar.gz: d339540dbaf44899ce66d1b838248695fac5c381
3
+ metadata.gz: 07a06a3923e7f4cc89718437418b5508a244fcbd
4
+ data.tar.gz: ac5def8a17722a49325f146d4770ff521439eade
5
5
  SHA512:
6
- metadata.gz: 811afd7bd3555901660d6738cc4297381601275077b35b02d7c04777fe6de7f34c5381617a6ceec9b3a4f44425b4d16cf88f9f34257cabf9a567bc6a11f097c3
7
- data.tar.gz: 0bf4f9179a3049136e0e30fdccef4cf572780c0bca2364d862584fba330f3645dc3a87636855d03d0f27b85308ca39f56220659227ccac4f8dfacabc56b612fe
6
+ metadata.gz: f56848a85c2ffee5cfff15c1354a98f4856c60e5a206ee18560f7c3a05d11b48627aa78c5c4196cf5adea2f25d60a7aeb06ed5eeda5af239fe094a4730c9eca1
7
+ data.tar.gz: 4813a8ffacabceeff15c27e6fb5e88c59c36a9572cb9bf5eeaf6fe18c3ea4757c9ea3fce6a8b0896fe8611e8874b43ebbd31c5bbce2d9725f0c824af5a8e8f3c
@@ -4,6 +4,8 @@ dendrite:
4
4
  env: dev
5
5
  zk_hosts:
6
6
  - localhost:2181
7
+ bind_to_all: true
8
+ sticky: true
7
9
  nerve_config_path: /opt/smartstack/conf/nerve.yml
8
10
  synapse_config_path: /opt/smartstack/conf/synapse.yml
9
11
  services_source: conf/services
@@ -14,6 +16,8 @@ dendrite:
14
16
  - aerospike
15
17
  - cassandra
16
18
  - jar
19
+ http_app_types:
20
+ - tomcat
17
21
 
18
22
  synapse:
19
23
  server_options: check inter 2s rise 3 fall 2
@@ -47,7 +51,7 @@ synapse:
47
51
  - balance roundrobin
48
52
  extra_sections:
49
53
  peers syncinghaproxy:
50
- - peer haproxy1 192.168.0.1:1024
54
+ - peer foobar 0.0.0.0:1024
51
55
  listen stats :9999:
52
56
  - mode http
53
57
  - stats enable
@@ -29,10 +29,10 @@ subcomponents:
29
29
  - domain_name: foobar2.com
30
30
  environment: prd
31
31
  default_servers:
32
- - host: 192.168.1.1
32
+ - host: 0.0.0.0
33
33
  port: 8080
34
34
  environment: stg
35
- - host: 192.168.1.2
35
+ - host: 0.0.0.0
36
36
  port: 8080
37
37
  environment: prd
38
38
  dependencies:
@@ -48,7 +48,7 @@ subcomponents:
48
48
  foo: bar
49
49
  sticky_session: sessionkey
50
50
  - name: cat
51
- type: tomcat
51
+ type: mysql
52
52
  deploy:
53
53
  repository: git@github.com:yagnik/dendrite
54
54
  package: dendrite
@@ -72,6 +72,18 @@ module Dendrite
72
72
  @@data[:dendrite][:valid_app_types]
73
73
  end
74
74
 
75
+ def http_types
76
+ @@data[:dendrite][:http_app_types] || []
77
+ end
78
+
79
+ def cookie
80
+ @@data[:dendrite][:cookie] || "COOKME"
81
+ end
82
+
83
+ def sticky
84
+ @@data[:dendrite][:sticky]
85
+ end
86
+
75
87
  def bind_to_all?
76
88
  @@data[:dendrite][:bind_to_all] != nil
77
89
  end
@@ -85,7 +85,8 @@ module Dendrite
85
85
  bind_address: bind_address,
86
86
  server_options: Dendrite::Config.server_options,
87
87
  listen: mode,
88
- backend_order: metadata && metadata.sticky_session ? 'asc' : nil
88
+ cookie_value_method: 'hash',
89
+ backend_order: (metadata && metadata.sticky_session) || Dendrite::Config.sticky ? 'asc' : nil
89
90
  }
90
91
  }
91
92
 
@@ -99,16 +100,17 @@ module Dendrite
99
100
  end
100
101
 
101
102
  def mode
102
- if metadata && metadata.sticky_session
103
+ if Dendrite::Config.http_types.include?(service.type)
104
+ arr = ['mode http']
105
+ key = metadata && metadata.sticky_session ? metadata.sticky_session : Dendrite::Config.cookie
103
106
  peer = Dendrite::Config.peer ? " peers #{Dendrite::Config.peer}": ''
104
- [
105
- 'mode http',
106
- "stick-table type string len 200 size 500m expire 30m#{peer}",
107
- "stick store-response res.cook(#{metadata.sticky_session})",
108
- "stick match req.cook(#{metadata.sticky_session})"
109
- ]
110
- elsif domain_names[environment] && domain_names[environment].length > 0
111
- ['mode http']
107
+
108
+ arr << "cookie #{Dendrite::Config.cookie} insert nocache"
109
+ arr << "stick-table type string len 200 size 500m expire 30m#{peer}"
110
+ arr << "stick store-response res.cook(#{key})"
111
+ arr << "stick match req.cook(#{key})"
112
+
113
+ arr
112
114
  else
113
115
  ['mode tcp']
114
116
  end
@@ -63,6 +63,7 @@ module Dendrite
63
63
  validates_presence_of :host
64
64
  validates_presence_of :port
65
65
  validates :port, numericality: { only_integer: true }
66
+ validates_inclusion_of :port, :in => 1..65535
66
67
  end
67
68
 
68
69
  DomainName = Struct.new(:environment, :domain_name) do
@@ -83,6 +84,7 @@ module Dendrite
83
84
  validates_presence_of :name
84
85
  validates_presence_of :port
85
86
  validates :port, numericality: { only_integer: true }
87
+ validates_inclusion_of :port, :in => 1..65535
86
88
  end
87
89
 
88
90
  Dependency = Struct.new(:service, :latency, :identifier) do
@@ -1,3 +1,3 @@
1
1
  module Dendrite
2
- VERSION = "0.5.7"
2
+ VERSION = "0.5.8"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dendrite
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.7
4
+ version: 0.5.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yagnik
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-11-04 00:00:00.000000000 Z
11
+ date: 2016-12-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler