teamd-proxy 0.0.1b1

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 6bff4cfba5c593f5b61f531fcf1021c684d6c140
4
+ data.tar.gz: a134006bb9c6aa307ed13098c832213eece37077
5
+ SHA512:
6
+ metadata.gz: 4522b12109c045f6beb6be70a58ee1283312f94067249fb7eef964601e2aefdeaafd4aaf6fbadebc267ea79425c721ae9d5af8f9ba325aaed21d24caf4665e5c
7
+ data.tar.gz: 512c011cf2d125d05c0af3c18e57883a2afd3bdc5397467e2bdc8787634bfa27110dd488d6510e91cbc63f3a130b2205cbb02994d7c18cb4a97b4cd0a6c8ec98
data/.gitignore ADDED
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
data/.travis.yml ADDED
@@ -0,0 +1,3 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.2.2
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in teamd-proxy.gemspec
4
+ gemspec
data/README.md ADDED
@@ -0,0 +1,39 @@
1
+ # Teamd::Proxy
2
+
3
+ Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/teamd/proxy`. To experiment with that code, run `bin/console` for an interactive prompt.
4
+
5
+ TODO: Delete this and the text above, and describe your gem
6
+
7
+ ## Installation
8
+
9
+ Add this line to your application's Gemfile:
10
+
11
+ ```ruby
12
+ gem 'teamd-proxy'
13
+ ```
14
+
15
+ And then execute:
16
+
17
+ $ bundle
18
+
19
+ Or install it yourself as:
20
+
21
+ $ gem install teamd-proxy
22
+
23
+ ## Usage
24
+
25
+ TODO: Write usage instructions here
26
+
27
+ ## Development
28
+
29
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `bin/console` for an interactive prompt that will allow you to experiment.
30
+
31
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release` to create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
32
+
33
+ ## Contributing
34
+
35
+ 1. Fork it ( https://github.com/[my-github-username]/teamd-proxy/fork )
36
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
37
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
38
+ 4. Push to the branch (`git push origin my-new-feature`)
39
+ 5. Create a new Pull Request
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
data/bin/console ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "teamd/proxy"
5
+ require "pry"
6
+ Pry.start
data/bin/setup ADDED
@@ -0,0 +1,7 @@
1
+ #!/bin/bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+
5
+ bundle install
6
+
7
+ # Do any other automated setup that you need to do here
data/exe/teamd-proxy ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "teamd/proxy/cli"
5
+ Teamd::Proxy::Cli.start
@@ -0,0 +1,11 @@
1
+ module Teamd
2
+ module Proxy
3
+ module Backend
4
+ class Backend
5
+ attr_accessor :port, :address
6
+ def config
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,8 @@
1
+ module Teamd
2
+ module Proxy
3
+ module Backend
4
+ class DockerInterlock < Backend
5
+ end
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ module Teamd
2
+ module Proxy
3
+ module Backend
4
+ class DockerLink < Backend
5
+ end
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ module Teamd
2
+ module Proxy
3
+ module Backend
4
+ class DockerSwarm < Backend
5
+ end
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,5 @@
1
+ require "teamd/proxy/backend/backend"
2
+ require "teamd/proxy/backend/docker_link"
3
+ require "teamd/proxy/backend/docker_interlock"
4
+ require "teamd/proxy/backend/docker_swarm"
5
+ require "teamd/proxy/backend/docker_swarm"
@@ -0,0 +1,14 @@
1
+ module Teamd
2
+ module Proxy
3
+ class Callback
4
+ class << self
5
+ def log_before_reload
6
+ Proc.new { puts "Before Reload" }
7
+ end
8
+ def log_after_reload
9
+ Proc.new { puts "After Reload" }
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,21 @@
1
+ require "teamd/proxy"
2
+ require "thor"
3
+
4
+ module Teamd
5
+ module Proxy
6
+ class Cli < Thor
7
+ desc "start","start the port proxy"
8
+ def start
9
+ @server = Teamd::Proxy::Server.new start: true
10
+ @server.before :reload, Teamd::Proxy::Callback.log_before_reload
11
+ @server.before :reload, Teamd::Proxy::Server.restart_proxy
12
+ @server.after :reload, Teamd::Proxy::Callback.log_after_reload
13
+ @server.add_frontend Teamd::Proxy::Frontend::DockerEnvironment.new.config
14
+ @server.add_backend Teamd::Proxy::Backend::DockerLink.new.config
15
+ @server.add_frontend Teamd::Proxy::Frontend::DockerInterlock.new.config
16
+ @server.add_backend Teamd::Proxy::Backend::DockerInterlock.new.config
17
+ @server.wait
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,8 @@
1
+ module Teamd
2
+ module Proxy
3
+ module Frontend
4
+ class DockerInterlock < Frontend
5
+ end
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ module Teamd
2
+ module Proxy
3
+ module Frontend
4
+ class DockerSwarm < Frontend
5
+ end
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ module Teamd
2
+ module Proxy
3
+ module Frontend
4
+ class Environment < Frontend
5
+ end
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,11 @@
1
+ module Teamd
2
+ module Proxy
3
+ module Frontend
4
+ class Frontend
5
+ attr_accessor :port, :address
6
+ def config
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,5 @@
1
+ require "teamd/proxy/frontend/frontend"
2
+ require "teamd/proxy/frontend/environment"
3
+ require "teamd/proxy/frontend/docker_interlock"
4
+ require "teamd/proxy/frontend/docker_swarm"
5
+ require "teamd/proxy/frontend/docker_swarm"
@@ -0,0 +1,8 @@
1
+ module Teamd
2
+ module Proxy
3
+ module Proxy
4
+ class Apache < Proxy
5
+ end
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ module Teamd
2
+ module Proxy
3
+ module Proxy
4
+ class HAProxy < Proxy
5
+ end
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ module Teamd
2
+ module Proxy
3
+ module Proxy
4
+ class NGinx < Proxy
5
+ end
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,19 @@
1
+ module Teamd
2
+ module Proxy
3
+ module Proxy
4
+ class Proxy
5
+ def initialize server
6
+ @server = server
7
+ end
8
+ def start
9
+ end
10
+ def stop
11
+ end
12
+ def restart
13
+ end
14
+ def reload
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,4 @@
1
+ require "teamd/proxy/proxy/proxy"
2
+ require "teamd/proxy/proxy/haproxy"
3
+ require "teamd/proxy/proxy/nginx"
4
+ require "teamd/proxy/proxy/apache"
@@ -0,0 +1,47 @@
1
+ module Teamd
2
+ module Proxy
3
+ class Server
4
+ class << self
5
+ def restart_proxy
6
+ end
7
+ def current
8
+ @instance
9
+ end
10
+ def current=instance
11
+ @instance = instance
12
+ end
13
+ end
14
+ attr_accessor :config_path, :pid_path, :control_path
15
+ def initialize start:false
16
+ self.class.current ||= self
17
+ @wait ||= Mutex.new
18
+ @proxy = Teamd::Proxy::Proxy::HAProxy.new self
19
+ @proxy.start
20
+ end
21
+ def wait
22
+ puts "Waiting for exit"
23
+ IO.select([IO.pipe[0]])
24
+ end
25
+ private
26
+ def callbacks
27
+ @callbacks ||= {}
28
+ end
29
+ def set_defaults
30
+ end
31
+ def add_callback position, *args, &block
32
+ puts "Adding callback #{block}"
33
+ callbacks[position] ||= []
34
+ callbacks[position] << block
35
+ end
36
+ def method_missing method, *args, &block
37
+ if method == :around
38
+ add_callback :before, *args, &block
39
+ add_callback :after, *args, &block
40
+ end
41
+ if %i{before after}.include? method
42
+ add_callback method, *args, &block
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,5 @@
1
+ module Teamd
2
+ module Proxy
3
+ VERSION = "0.0.1b1"
4
+ end
5
+ end
@@ -0,0 +1,7 @@
1
+ require "teamd/proxy/version"
2
+
3
+ require "teamd/proxy/proxy"
4
+ require "teamd/proxy/server"
5
+ require "teamd/proxy/callback"
6
+ require "teamd/proxy/frontend"
7
+ require "teamd/proxy/backend"
@@ -0,0 +1,27 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'teamd/proxy/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "teamd-proxy"
8
+ spec.version = Teamd::Proxy::VERSION
9
+ spec.authors = ["Mathias Kaufmann"]
10
+ spec.email = ["me@stei.gr"]
11
+
12
+ spec.summary = %q{Teamd Port Proxy}
13
+ spec.description = %q{Teamd Port Proxy}
14
+ spec.homepage = "https://teamd.stei.gr/proxy"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features|docker)/}) }
17
+ spec.bindir = "exe"
18
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_dependency "bundler", "~> 1.9"
22
+ spec.add_dependency "thor"
23
+ spec.add_dependency "synapse"
24
+ spec.add_dependency "toml-rb"
25
+
26
+ spec.add_development_dependency "rake", "~> 10.0"
27
+ end
metadata ADDED
@@ -0,0 +1,144 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: teamd-proxy
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1b1
5
+ platform: ruby
6
+ authors:
7
+ - Mathias Kaufmann
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2015-05-31 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.9'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.9'
27
+ - !ruby/object:Gem::Dependency
28
+ name: thor
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: synapse
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: toml-rb
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rake
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '10.0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '10.0'
83
+ description: Teamd Port Proxy
84
+ email:
85
+ - me@stei.gr
86
+ executables:
87
+ - teamd-proxy
88
+ extensions: []
89
+ extra_rdoc_files: []
90
+ files:
91
+ - ".gitignore"
92
+ - ".travis.yml"
93
+ - Gemfile
94
+ - README.md
95
+ - Rakefile
96
+ - bin/console
97
+ - bin/setup
98
+ - exe/teamd-proxy
99
+ - lib/teamd/proxy.rb
100
+ - lib/teamd/proxy/backend.rb
101
+ - lib/teamd/proxy/backend/backend.rb
102
+ - lib/teamd/proxy/backend/docker_interlock.rb
103
+ - lib/teamd/proxy/backend/docker_link.rb
104
+ - lib/teamd/proxy/backend/docker_swarm.rb
105
+ - lib/teamd/proxy/callback.rb
106
+ - lib/teamd/proxy/cli.rb
107
+ - lib/teamd/proxy/frontend.rb
108
+ - lib/teamd/proxy/frontend/docker_interlock.rb
109
+ - lib/teamd/proxy/frontend/docker_swarm.rb
110
+ - lib/teamd/proxy/frontend/environment.rb
111
+ - lib/teamd/proxy/frontend/frontend.rb
112
+ - lib/teamd/proxy/proxy.rb
113
+ - lib/teamd/proxy/proxy/apache.rb
114
+ - lib/teamd/proxy/proxy/haproxy.rb
115
+ - lib/teamd/proxy/proxy/nginx.rb
116
+ - lib/teamd/proxy/proxy/proxy.rb
117
+ - lib/teamd/proxy/server.rb
118
+ - lib/teamd/proxy/version.rb
119
+ - teamd-proxy.gemspec
120
+ homepage: https://teamd.stei.gr/proxy
121
+ licenses: []
122
+ metadata: {}
123
+ post_install_message:
124
+ rdoc_options: []
125
+ require_paths:
126
+ - lib
127
+ required_ruby_version: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ required_rubygems_version: !ruby/object:Gem::Requirement
133
+ requirements:
134
+ - - ">"
135
+ - !ruby/object:Gem::Version
136
+ version: 1.3.1
137
+ requirements: []
138
+ rubyforge_project:
139
+ rubygems_version: 2.4.6
140
+ signing_key:
141
+ specification_version: 4
142
+ summary: Teamd Port Proxy
143
+ test_files: []
144
+ has_rdoc: