synapse-easy 0.1.9 → 0.1.10
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 +4 -4
 - data/lib/synapse/easy.rb +1 -2
 - data/lib/synapse/easy/haproxy.rb +2 -5
 - data/lib/synapse/easy/section.rb +3 -0
 - data/lib/synapse/easy/section/base.rb +42 -0
 - data/lib/synapse/easy/section/http.rb +65 -0
 - data/lib/synapse/easy/section/stats.rb +50 -0
 - data/lib/synapse/easy/section/tcp.rb +24 -0
 - data/lib/synapse/easy/service.rb +1 -0
 - data/lib/synapse/easy/version.rb +1 -1
 - metadata +7 -5
 - data/lib/synapse/easy/extra_section.rb +0 -32
 - data/lib/synapse/easy/frontend_section.rb +0 -13
 - data/lib/synapse/easy/stats_section.rb +0 -56
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: a19980fe2271a379f2a63484db6e16aa2ea350ba
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 1fe87c961e77a8adaa66b98864270f2a7d47e323
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: de8ff95866152c578605708fa211145613b38d5fb521500a9f1ccb110a3369f328be0fe9af8e0161ee71c7bb20b13330444975269fc0cef507c07f8512154262
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 641a34cd6951c34b48ab51f45637557a175aadc371130e32e6d871956767c0d11795655904a3c81954788d2df7b0666ac24e3692f32451555c8627c548981771
         
     | 
    
        data/lib/synapse/easy.rb
    CHANGED
    
    
    
        data/lib/synapse/easy/haproxy.rb
    CHANGED
    
    | 
         @@ -84,17 +84,14 @@ module Synapse 
     | 
|
| 
       84 
84 
     | 
    
         
             
                    ]
         
     | 
| 
       85 
85 
     | 
    
         
             
                  end
         
     | 
| 
       86 
86 
     | 
    
         
             
                  def defaults
         
     | 
| 
       87 
     | 
    
         
            -
                    defaults =  
     | 
| 
      
 87 
     | 
    
         
            +
                    defaults = default_options 
         
     | 
| 
       88 
88 
     | 
    
         
             
                    defaults << "log #{default_log}"
         
     | 
| 
       89 
89 
     | 
    
         
             
                    defaults << "maxconn #{default_maxconn}"
         
     | 
| 
       90 
90 
     | 
    
         
             
                    defaults << "retries #{default_retries}"
         
     | 
| 
       91 
91 
     | 
    
         
             
                    defaults << "balance #{default_balance}"
         
     | 
| 
       92 
     | 
    
         
            -
                    defaults +=  
     | 
| 
      
 92 
     | 
    
         
            +
                    defaults += default_timeouts.collect{|l,t| "timeout #{l} #{t}"}
         
     | 
| 
       93 
93 
     | 
    
         
             
                    defaults
         
     | 
| 
       94 
94 
     | 
    
         
             
                  end
         
     | 
| 
       95 
     | 
    
         
            -
                  def extra_sections
         
     | 
| 
       96 
     | 
    
         
            -
                    @extra_sections
         
     | 
| 
       97 
     | 
    
         
            -
                  end
         
     | 
| 
       98 
95 
     | 
    
         
             
                  def to_synapse
         
     | 
| 
       99 
96 
     | 
    
         
             
                    FileUtils.mkdir_p workdir.to_s unless Dir.exists? workdir.to_s
         
     | 
| 
       100 
97 
     | 
    
         
             
                    {
         
     | 
| 
         @@ -0,0 +1,42 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require "pathname"
         
     | 
| 
      
 2 
     | 
    
         
            +
            require "active_support/core_ext/hash/indifferent_access"
         
     | 
| 
      
 3 
     | 
    
         
            +
            require "fake/hash"
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            module Synapse
         
     | 
| 
      
 6 
     | 
    
         
            +
              module Easy
         
     | 
| 
      
 7 
     | 
    
         
            +
                module Section
         
     | 
| 
      
 8 
     | 
    
         
            +
                  class Base
         
     | 
| 
      
 9 
     | 
    
         
            +
                    include Fake::Hash
         
     | 
| 
      
 10 
     | 
    
         
            +
                    attr_accessor :type, :name, :options, :address, :port
         
     | 
| 
      
 11 
     | 
    
         
            +
                    def initialize params={}
         
     | 
| 
      
 12 
     | 
    
         
            +
                      @address   = params[:address]
         
     | 
| 
      
 13 
     | 
    
         
            +
                      @address ||= "localhost"
         
     | 
| 
      
 14 
     | 
    
         
            +
                      @port      = params[:port]
         
     | 
| 
      
 15 
     | 
    
         
            +
                      @port    ||= Freeport.port
         
     | 
| 
      
 16 
     | 
    
         
            +
                      @name      = params[:name]
         
     | 
| 
      
 17 
     | 
    
         
            +
                      @type      = params[:type]
         
     | 
| 
      
 18 
     | 
    
         
            +
                      @type    ||= "frontend"
         
     | 
| 
      
 19 
     | 
    
         
            +
                      @options   = params[:options]
         
     | 
| 
      
 20 
     | 
    
         
            +
                      @options ||= []
         
     | 
| 
      
 21 
     | 
    
         
            +
                    end
         
     | 
| 
      
 22 
     | 
    
         
            +
                    def label
         
     | 
| 
      
 23 
     | 
    
         
            +
                      "#{type} #{name}"
         
     | 
| 
      
 24 
     | 
    
         
            +
                    end
         
     | 
| 
      
 25 
     | 
    
         
            +
                    def section_options
         
     | 
| 
      
 26 
     | 
    
         
            +
                      options
         
     | 
| 
      
 27 
     | 
    
         
            +
                    end
         
     | 
| 
      
 28 
     | 
    
         
            +
                    def each *args, &block
         
     | 
| 
      
 29 
     | 
    
         
            +
                      section_options.each(*args,&block)
         
     | 
| 
      
 30 
     | 
    
         
            +
                    end
         
     | 
| 
      
 31 
     | 
    
         
            +
                    def bind
         
     | 
| 
      
 32 
     | 
    
         
            +
                      [address,port].compact.join(":")
         
     | 
| 
      
 33 
     | 
    
         
            +
                    end
         
     | 
| 
      
 34 
     | 
    
         
            +
                    def to_synapse
         
     | 
| 
      
 35 
     | 
    
         
            +
                      {
         
     | 
| 
      
 36 
     | 
    
         
            +
                        label => section_options
         
     | 
| 
      
 37 
     | 
    
         
            +
                      }
         
     | 
| 
      
 38 
     | 
    
         
            +
                    end
         
     | 
| 
      
 39 
     | 
    
         
            +
                  end
         
     | 
| 
      
 40 
     | 
    
         
            +
                end
         
     | 
| 
      
 41 
     | 
    
         
            +
              end
         
     | 
| 
      
 42 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,65 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require "synapse/easy/section/tcp"
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module Synapse
         
     | 
| 
      
 4 
     | 
    
         
            +
              module Easy
         
     | 
| 
      
 5 
     | 
    
         
            +
                module Section
         
     | 
| 
      
 6 
     | 
    
         
            +
                  class Http < Tcp
         
     | 
| 
      
 7 
     | 
    
         
            +
                    attr_accessor :protocol, :ssl, :default_certificate, :certificates,
         
     | 
| 
      
 8 
     | 
    
         
            +
                                  :ciphers, :secure_cookies, :strict_security
         
     | 
| 
      
 9 
     | 
    
         
            +
                    def initialize params={}
         
     | 
| 
      
 10 
     | 
    
         
            +
                      super
         
     | 
| 
      
 11 
     | 
    
         
            +
                      @mode                  = :http
         
     | 
| 
      
 12 
     | 
    
         
            +
                      @protocol              = params[:protocol]
         
     | 
| 
      
 13 
     | 
    
         
            +
                      @protocol            ||= :http
         
     | 
| 
      
 14 
     | 
    
         
            +
                      @protocol              = :http unless [:http, :https].include? @protocol.to_sym
         
     | 
| 
      
 15 
     | 
    
         
            +
                      @ssl                   = not(params[:default_certificate].nil?)
         
     | 
| 
      
 16 
     | 
    
         
            +
                      @ssl                 ||= false if ssl.nil?
         
     | 
| 
      
 17 
     | 
    
         
            +
                      @default_certificate   = params[:default_certificate]
         
     | 
| 
      
 18 
     | 
    
         
            +
                      @default_certificate ||= "/etc/ssl/private/ssl-cert-snakeoil.key crt /etc/ssl/certs/ssl-cert-snakeoil.pem" if ssl
         
     | 
| 
      
 19 
     | 
    
         
            +
                      @certificates          = params[:certificates]
         
     | 
| 
      
 20 
     | 
    
         
            +
                      @certificates        ||= []
         
     | 
| 
      
 21 
     | 
    
         
            +
                      @ciphers               = params[:ciphers]
         
     | 
| 
      
 22 
     | 
    
         
            +
                      @ciphers             ||= %W{ECDHE-ECDSA-AES256-GCM-SHA384
         
     | 
| 
      
 23 
     | 
    
         
            +
                                                  ECDHE-ECDSA-AES128-GCM-SHA256
         
     | 
| 
      
 24 
     | 
    
         
            +
                                                  ECDHE-ECDSA-AES256-SHA384
         
     | 
| 
      
 25 
     | 
    
         
            +
                                                  ECDHE-ECDSA-AES256-SHA
         
     | 
| 
      
 26 
     | 
    
         
            +
                                                  ECDHE-RSA-AES256-SHA384
         
     | 
| 
      
 27 
     | 
    
         
            +
                                                  ECDHE-RSA-AES256-SHA
         
     | 
| 
      
 28 
     | 
    
         
            +
                                                  DHE-RSA-AES256-SHA DHE-RSA-AES128-SHA
         
     | 
| 
      
 29 
     | 
    
         
            +
                                                  DES-CBC3-SHA !NULL !aNULL !RC4 !RC2 !MEDIUM
         
     | 
| 
      
 30 
     | 
    
         
            +
                                                  !LOW !EXPORT !DES !MD5 !PSK !3DES} if ssl
         
     | 
| 
      
 31 
     | 
    
         
            +
                      @secure_cookies        = params[:secure_cookies]
         
     | 
| 
      
 32 
     | 
    
         
            +
                      @secure_cookies      ||= true if @secure_cookies.nil? and ssl
         
     | 
| 
      
 33 
     | 
    
         
            +
                      @strict_security       = params[:strict_security]
         
     | 
| 
      
 34 
     | 
    
         
            +
                      @strict_security     ||= true if @strict_security.nil? and ssl
         
     | 
| 
      
 35 
     | 
    
         
            +
                    end
         
     | 
| 
      
 36 
     | 
    
         
            +
                    def secure_cookies
         
     | 
| 
      
 37 
     | 
    
         
            +
                      "rsprep ^Set-Cookie:\\ (.*) Set-Cookie:\\ \\1;\\ Secure" if @secure_cookies
         
     | 
| 
      
 38 
     | 
    
         
            +
                    end
         
     | 
| 
      
 39 
     | 
    
         
            +
                    def strict_security
         
     | 
| 
      
 40 
     | 
    
         
            +
                      "rspadd Strict-Transport-Security:\\ max-age=31536000;\\ includeSubDomains" if @strict_security
         
     | 
| 
      
 41 
     | 
    
         
            +
                    end
         
     | 
| 
      
 42 
     | 
    
         
            +
                    def complex_bind
         
     | 
| 
      
 43 
     | 
    
         
            +
                      @complex_bind = []
         
     | 
| 
      
 44 
     | 
    
         
            +
                      @complex_bind << bind
         
     | 
| 
      
 45 
     | 
    
         
            +
                      @complex_bind << "ssl" if ssl
         
     | 
| 
      
 46 
     | 
    
         
            +
                      @complex_bind << "crt" if ssl
         
     | 
| 
      
 47 
     | 
    
         
            +
                      @complex_bind << default_certificate
         
     | 
| 
      
 48 
     | 
    
         
            +
                      certificates.each do |certificate|
         
     | 
| 
      
 49 
     | 
    
         
            +
                        @complex_bind << "crt"
         
     | 
| 
      
 50 
     | 
    
         
            +
                        @complex_bind << certificate
         
     | 
| 
      
 51 
     | 
    
         
            +
                      end
         
     | 
| 
      
 52 
     | 
    
         
            +
                      @complex_bind.compact.join(" ")
         
     | 
| 
      
 53 
     | 
    
         
            +
                    end
         
     | 
| 
      
 54 
     | 
    
         
            +
                    def section_options
         
     | 
| 
      
 55 
     | 
    
         
            +
                      @options.reject{|o| o =~ /^bind/} + [
         
     | 
| 
      
 56 
     | 
    
         
            +
                        "bind #{complex_bind}",
         
     | 
| 
      
 57 
     | 
    
         
            +
                        "reqadd X-Forwarded-Proto:\\ #{protocol}",
         
     | 
| 
      
 58 
     | 
    
         
            +
                        secure_cookies,
         
     | 
| 
      
 59 
     | 
    
         
            +
                        strict_security
         
     | 
| 
      
 60 
     | 
    
         
            +
                      ].compact
         
     | 
| 
      
 61 
     | 
    
         
            +
                    end
         
     | 
| 
      
 62 
     | 
    
         
            +
                  end
         
     | 
| 
      
 63 
     | 
    
         
            +
                end
         
     | 
| 
      
 64 
     | 
    
         
            +
              end
         
     | 
| 
      
 65 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,50 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require "synapse/easy/section/base"
         
     | 
| 
      
 2 
     | 
    
         
            +
            require "socket"
         
     | 
| 
      
 3 
     | 
    
         
            +
            require "freeport"
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            module Synapse
         
     | 
| 
      
 6 
     | 
    
         
            +
              module Easy
         
     | 
| 
      
 7 
     | 
    
         
            +
                module Section
         
     | 
| 
      
 8 
     | 
    
         
            +
                  class Stats < Base
         
     | 
| 
      
 9 
     | 
    
         
            +
                    attr_accessor :uri, :enabled, :refresh, :realm, :node, :hide_version,
         
     | 
| 
      
 10 
     | 
    
         
            +
                                  :username, :password, :scope, :show_node
         
     | 
| 
      
 11 
     | 
    
         
            +
                    def initialize params={}
         
     | 
| 
      
 12 
     | 
    
         
            +
                      super
         
     | 
| 
      
 13 
     | 
    
         
            +
                      @uri            = params[:uri]
         
     | 
| 
      
 14 
     | 
    
         
            +
                      @uri          ||= "/"
         
     | 
| 
      
 15 
     | 
    
         
            +
                      @enabled        = params[:enabled]
         
     | 
| 
      
 16 
     | 
    
         
            +
                      @enabled      ||= true if @enabled.nil?
         
     | 
| 
      
 17 
     | 
    
         
            +
                      @refresh        = params[:refresh]
         
     | 
| 
      
 18 
     | 
    
         
            +
                      @refresh      ||= 5
         
     | 
| 
      
 19 
     | 
    
         
            +
                      @realm          = params[:realm]
         
     | 
| 
      
 20 
     | 
    
         
            +
                      @realm        ||= "HAProxy\\ Stats"
         
     | 
| 
      
 21 
     | 
    
         
            +
                      @hide_version   = params[:hide_version]
         
     | 
| 
      
 22 
     | 
    
         
            +
                      @hide_version ||= true if @hide_version.nil?
         
     | 
| 
      
 23 
     | 
    
         
            +
                      @username       = params[:username]
         
     | 
| 
      
 24 
     | 
    
         
            +
                      @password       = params[:password]
         
     | 
| 
      
 25 
     | 
    
         
            +
                      @scope          = params[:scope]
         
     | 
| 
      
 26 
     | 
    
         
            +
                      @show_node      = params[:show_node]
         
     | 
| 
      
 27 
     | 
    
         
            +
                      @show_node    ||= false if @show_node.nil?
         
     | 
| 
      
 28 
     | 
    
         
            +
                      @node           = params[:node]
         
     | 
| 
      
 29 
     | 
    
         
            +
                      @node         ||= Socket.gethostname
         
     | 
| 
      
 30 
     | 
    
         
            +
                    end
         
     | 
| 
      
 31 
     | 
    
         
            +
                    def section_options
         
     | 
| 
      
 32 
     | 
    
         
            +
                      @options + [
         
     | 
| 
      
 33 
     | 
    
         
            +
                          "mode http",
         
     | 
| 
      
 34 
     | 
    
         
            +
                        ( "stats enable" if enabled ),
         
     | 
| 
      
 35 
     | 
    
         
            +
                          "stats uri #{uri}",
         
     | 
| 
      
 36 
     | 
    
         
            +
                          "stats refresh #{refresh}",
         
     | 
| 
      
 37 
     | 
    
         
            +
                          "stats realm #{realm}",
         
     | 
| 
      
 38 
     | 
    
         
            +
                        ( "stats hide-version" if hide_version),
         
     | 
| 
      
 39 
     | 
    
         
            +
                        ( "stats auth #{username}:#{password}" if username and password ),
         
     | 
| 
      
 40 
     | 
    
         
            +
                        ( "stats scope #{scope}" if scope ),
         
     | 
| 
      
 41 
     | 
    
         
            +
                        ( "stats show-node #{node}" if show_node ),
         
     | 
| 
      
 42 
     | 
    
         
            +
                      ].compact
         
     | 
| 
      
 43 
     | 
    
         
            +
                    end
         
     | 
| 
      
 44 
     | 
    
         
            +
                    def label
         
     | 
| 
      
 45 
     | 
    
         
            +
                      "listen stats #{bind}"
         
     | 
| 
      
 46 
     | 
    
         
            +
                    end
         
     | 
| 
      
 47 
     | 
    
         
            +
                  end
         
     | 
| 
      
 48 
     | 
    
         
            +
                end
         
     | 
| 
      
 49 
     | 
    
         
            +
              end
         
     | 
| 
      
 50 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,24 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require "synapse/easy/section/base"
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module Synapse
         
     | 
| 
      
 4 
     | 
    
         
            +
              module Easy
         
     | 
| 
      
 5 
     | 
    
         
            +
                module Section
         
     | 
| 
      
 6 
     | 
    
         
            +
                  class Tcp < Base
         
     | 
| 
      
 7 
     | 
    
         
            +
                    attr_accessor :mode, :default_backend
         
     | 
| 
      
 8 
     | 
    
         
            +
                    def initialize params={}
         
     | 
| 
      
 9 
     | 
    
         
            +
                      super
         
     | 
| 
      
 10 
     | 
    
         
            +
                      @type            = "frontend"
         
     | 
| 
      
 11 
     | 
    
         
            +
                      @mode            = params[:mode]
         
     | 
| 
      
 12 
     | 
    
         
            +
                      @mode          ||= :tcp
         
     | 
| 
      
 13 
     | 
    
         
            +
                      @default_backend = params[:default_backend]
         
     | 
| 
      
 14 
     | 
    
         
            +
                    end
         
     | 
| 
      
 15 
     | 
    
         
            +
                    def section_options
         
     | 
| 
      
 16 
     | 
    
         
            +
                      @options + [
         
     | 
| 
      
 17 
     | 
    
         
            +
                        "mode #{mode}",
         
     | 
| 
      
 18 
     | 
    
         
            +
                        "bind #{bind}",
         
     | 
| 
      
 19 
     | 
    
         
            +
                      ].compact
         
     | 
| 
      
 20 
     | 
    
         
            +
                    end
         
     | 
| 
      
 21 
     | 
    
         
            +
                  end
         
     | 
| 
      
 22 
     | 
    
         
            +
                end
         
     | 
| 
      
 23 
     | 
    
         
            +
              end
         
     | 
| 
      
 24 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/synapse/easy/service.rb
    CHANGED
    
    
    
        data/lib/synapse/easy/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: synapse-easy
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.1. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.1.10
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Mathias Kaufmann
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: exe
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2015-04- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2015-04-02 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: resolv-consul
         
     | 
| 
         @@ -95,11 +95,13 @@ files: 
     | 
|
| 
       95 
95 
     | 
    
         
             
            - bin/console
         
     | 
| 
       96 
96 
     | 
    
         
             
            - bin/setup
         
     | 
| 
       97 
97 
     | 
    
         
             
            - lib/synapse/easy.rb
         
     | 
| 
       98 
     | 
    
         
            -
            - lib/synapse/easy/extra_section.rb
         
     | 
| 
       99 
     | 
    
         
            -
            - lib/synapse/easy/frontend_section.rb
         
     | 
| 
       100 
98 
     | 
    
         
             
            - lib/synapse/easy/haproxy.rb
         
     | 
| 
      
 99 
     | 
    
         
            +
            - lib/synapse/easy/section.rb
         
     | 
| 
      
 100 
     | 
    
         
            +
            - lib/synapse/easy/section/base.rb
         
     | 
| 
      
 101 
     | 
    
         
            +
            - lib/synapse/easy/section/http.rb
         
     | 
| 
      
 102 
     | 
    
         
            +
            - lib/synapse/easy/section/stats.rb
         
     | 
| 
      
 103 
     | 
    
         
            +
            - lib/synapse/easy/section/tcp.rb
         
     | 
| 
       101 
104 
     | 
    
         
             
            - lib/synapse/easy/service.rb
         
     | 
| 
       102 
     | 
    
         
            -
            - lib/synapse/easy/stats_section.rb
         
     | 
| 
       103 
105 
     | 
    
         
             
            - lib/synapse/easy/version.rb
         
     | 
| 
       104 
106 
     | 
    
         
             
            - synapse-easy.gemspec
         
     | 
| 
       105 
107 
     | 
    
         
             
            homepage: http://synapse.stei.gr/easy
         
     | 
| 
         @@ -1,32 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require "pathname"
         
     | 
| 
       2 
     | 
    
         
            -
            require "active_support/core_ext/hash/indifferent_access"
         
     | 
| 
       3 
     | 
    
         
            -
            require "fake/hash"
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
            module Synapse
         
     | 
| 
       6 
     | 
    
         
            -
              module Easy
         
     | 
| 
       7 
     | 
    
         
            -
                class ExtraSection
         
     | 
| 
       8 
     | 
    
         
            -
                  include Fake::Hash
         
     | 
| 
       9 
     | 
    
         
            -
                  attr_accessor :name, :type, :options
         
     | 
| 
       10 
     | 
    
         
            -
                  def initialize params={}
         
     | 
| 
       11 
     | 
    
         
            -
                    @name      = params[:name]
         
     | 
| 
       12 
     | 
    
         
            -
                    @type      = params[:type]
         
     | 
| 
       13 
     | 
    
         
            -
                    @type    ||= "frontend"
         
     | 
| 
       14 
     | 
    
         
            -
                    @options ||= []
         
     | 
| 
       15 
     | 
    
         
            -
                  end
         
     | 
| 
       16 
     | 
    
         
            -
                  def label
         
     | 
| 
       17 
     | 
    
         
            -
                    "#{type} #{name}"
         
     | 
| 
       18 
     | 
    
         
            -
                  end
         
     | 
| 
       19 
     | 
    
         
            -
                  def section_options
         
     | 
| 
       20 
     | 
    
         
            -
                    options
         
     | 
| 
       21 
     | 
    
         
            -
                  end
         
     | 
| 
       22 
     | 
    
         
            -
                  def each *args, &block
         
     | 
| 
       23 
     | 
    
         
            -
                    section_options.each(*args,&block)
         
     | 
| 
       24 
     | 
    
         
            -
                  end
         
     | 
| 
       25 
     | 
    
         
            -
                  def to_synapse
         
     | 
| 
       26 
     | 
    
         
            -
                    {
         
     | 
| 
       27 
     | 
    
         
            -
                      label => section_options
         
     | 
| 
       28 
     | 
    
         
            -
                    }
         
     | 
| 
       29 
     | 
    
         
            -
                  end
         
     | 
| 
       30 
     | 
    
         
            -
                end
         
     | 
| 
       31 
     | 
    
         
            -
              end
         
     | 
| 
       32 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,56 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require "synapse/easy/extra_section"
         
     | 
| 
       2 
     | 
    
         
            -
            require "socket"
         
     | 
| 
       3 
     | 
    
         
            -
            require "freeport"
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
            module Synapse
         
     | 
| 
       6 
     | 
    
         
            -
              module Easy
         
     | 
| 
       7 
     | 
    
         
            -
                class StatsSection < ExtraSection
         
     | 
| 
       8 
     | 
    
         
            -
                  attr_accessor :address, :port, :uri, :enabled, :refresh, :realm,
         
     | 
| 
       9 
     | 
    
         
            -
                                :hide_version, :username, :password, :scope, :show_node,
         
     | 
| 
       10 
     | 
    
         
            -
                                :node
         
     | 
| 
       11 
     | 
    
         
            -
                  def initialize params={}
         
     | 
| 
       12 
     | 
    
         
            -
                    super
         
     | 
| 
       13 
     | 
    
         
            -
                    @address        = params[:address]
         
     | 
| 
       14 
     | 
    
         
            -
                    @address      ||= "localhost"
         
     | 
| 
       15 
     | 
    
         
            -
                    @port           = params[:port]
         
     | 
| 
       16 
     | 
    
         
            -
                    @port         ||= Freeport.port
         
     | 
| 
       17 
     | 
    
         
            -
                    @uri            = params[:uri]
         
     | 
| 
       18 
     | 
    
         
            -
                    @uri          ||= "/"
         
     | 
| 
       19 
     | 
    
         
            -
                    @enabled        = params[:enabled]
         
     | 
| 
       20 
     | 
    
         
            -
                    @enabled      ||= true if @enabled.nil?
         
     | 
| 
       21 
     | 
    
         
            -
                    @refresh        = params[:refresh]
         
     | 
| 
       22 
     | 
    
         
            -
                    @refresh      ||= 5
         
     | 
| 
       23 
     | 
    
         
            -
                    @realm          = params[:realm]
         
     | 
| 
       24 
     | 
    
         
            -
                    @realm        ||= "HAProxy\\ Stats"
         
     | 
| 
       25 
     | 
    
         
            -
                    @hide_version   = params[:hide_version]
         
     | 
| 
       26 
     | 
    
         
            -
                    @hide_version ||= true if @hide_version.nil?
         
     | 
| 
       27 
     | 
    
         
            -
                    @username       = params[:username]
         
     | 
| 
       28 
     | 
    
         
            -
                    @password       = params[:password]
         
     | 
| 
       29 
     | 
    
         
            -
                    @scope          = params[:scope]
         
     | 
| 
       30 
     | 
    
         
            -
                    @show_node      = params[:show_node]
         
     | 
| 
       31 
     | 
    
         
            -
                    @show_node    ||= false if @show_node.nil?
         
     | 
| 
       32 
     | 
    
         
            -
                    @node           = params[:node]
         
     | 
| 
       33 
     | 
    
         
            -
                    @node         ||= Socket.gethostname
         
     | 
| 
       34 
     | 
    
         
            -
                  end
         
     | 
| 
       35 
     | 
    
         
            -
                  def section_options
         
     | 
| 
       36 
     | 
    
         
            -
                    @options + [
         
     | 
| 
       37 
     | 
    
         
            -
                        "mode http",
         
     | 
| 
       38 
     | 
    
         
            -
                      ( "stats enable" if enabled ),
         
     | 
| 
       39 
     | 
    
         
            -
                        "stats uri #{uri}",
         
     | 
| 
       40 
     | 
    
         
            -
                        "stats refresh #{refresh}",
         
     | 
| 
       41 
     | 
    
         
            -
                        "stats realm #{realm}",
         
     | 
| 
       42 
     | 
    
         
            -
                      ( "stats hide-version" if hide_version),
         
     | 
| 
       43 
     | 
    
         
            -
                      ( "stats auth #{username}:#{password}" if username and password ),
         
     | 
| 
       44 
     | 
    
         
            -
                      ( "stats scope #{scope}" if scope ),
         
     | 
| 
       45 
     | 
    
         
            -
                      ( "stats show-node #{node}" if show_node ),
         
     | 
| 
       46 
     | 
    
         
            -
                    ].compact
         
     | 
| 
       47 
     | 
    
         
            -
                  end
         
     | 
| 
       48 
     | 
    
         
            -
                  def bind
         
     | 
| 
       49 
     | 
    
         
            -
                    [address,port].compact.join(":")
         
     | 
| 
       50 
     | 
    
         
            -
                  end
         
     | 
| 
       51 
     | 
    
         
            -
                  def label
         
     | 
| 
       52 
     | 
    
         
            -
                    "listen stats #{bind}"
         
     | 
| 
       53 
     | 
    
         
            -
                  end
         
     | 
| 
       54 
     | 
    
         
            -
                end
         
     | 
| 
       55 
     | 
    
         
            -
              end
         
     | 
| 
       56 
     | 
    
         
            -
            end
         
     |