Class: Dendrite::Generators::Synapse::ServiceConfig

Inherits:
Struct
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/dendrite/generators/synapse.rb

Instance Method Summary collapse

Instance Method Details

#bind_addressObject



105
106
107
# File 'lib/dendrite/generators/synapse.rb', line 105

def bind_address
  Dendrite::Config.bind_to_all? ? '0.0.0.0' : '127.0.0.1'
end

#default_servers_configObject



53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/dendrite/generators/synapse.rb', line 53

def default_servers_config
  servers = default_servers[environment]
  if servers
    {
      default_servers: servers.enum_for(:each_with_index).collect do |server, i|
        data = server.to_h.merge({
          name: "default_#{name}_#{i}"
        })
        data.delete(:environment)
        data
      end
    }
  else
    {}
  end
end

#discovery_configObject



70
71
72
73
74
75
76
77
78
# File 'lib/dendrite/generators/synapse.rb', line 70

def discovery_config
  {
    discovery: {
      method: 'zookeeper',
      hosts: Dendrite::Config.zk_hosts,
      path: "/smartstack/services/#{organization}/#{component}/#{service.real_name}/instances"
    }
  }
end

#haproxy_configObject



80
81
82
83
84
85
86
87
88
89
# File 'lib/dendrite/generators/synapse.rb', line 80

def haproxy_config
  {
    haproxy: {
      port: service.loadbalancer_port,
      bind_address: bind_address,
      server_options: 'check inter 2s rise 3 fall 2',
      listen: mode
    }
  }
end

#modeObject



91
92
93
94
95
96
97
98
99
100
101
102
103
# File 'lib/dendrite/generators/synapse.rb', line 91

def mode
  if  && .sticky_session
    peer = Dendrite::Config.peer ? " peers #{Dendrite::Config.peer}": ''
    [
      'mode http',
      "stick-table type string len 200 size 500m expire 30m#{peer}",
      "stick store-response res.cook(#{metadata.sticky_session})",
      "stick match req.cook(#{metadata.sticky_session})"
    ]
  else
    ['mode tcp']
  end
end

#to_hObject



48
49
50
51
# File 'lib/dendrite/generators/synapse.rb', line 48

def to_h
  discovery_config.merge(haproxy_config)
                  .merge(default_servers_config)
end