dendrite 0.5.7 → 0.5.8

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: 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