mkit 0.4.1 → 0.4.2

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
  SHA256:
3
- metadata.gz: fbf4273a9458c659131f42dff9f804d23632b282bb6ee04d803c8e8623262fa1
4
- data.tar.gz: f9c7cdff9a122c90c714fd16de80bfc07f19ded8d88806d2b7e7f3af2f7dc246
3
+ metadata.gz: 56a055d0f918142de3df69c4855efe29d91eb31aa708bdd2750686b8bdb80c47
4
+ data.tar.gz: 4060c899e719dad8dcd11a587e2b34f40caf0d4929a5e3d587d4e51b8a133a82
5
5
  SHA512:
6
- metadata.gz: e0975eb515e8b4b91006953f293206b02b1b377a3668b8478af9dfa84f9a58216cbbe83928c8458bb3d9676543cb748dedfa00c26f65279ffe59f15f847cab5d
7
- data.tar.gz: d790f9aa1edcac942df9a72317295c9c091eb88ec029d2584c0275bbd7740fe94272504a984a3248d0aa1d77949e7343ee189fa0018b5724ecfd0de44308a567
6
+ metadata.gz: 7834b888e1474e287e7466443be8ac139bbd96d89e17f787d688aee5f308f076aab408de600acee6dc4f94a145fda9edb8574e7828b1d20ae8fcb46700c96e85
7
+ data.tar.gz: 91130b1307fb43d0ac3dc590bf01727dab106c5b726210ef9fe67057dcb7454434f514beee94c4d265ee7351b802d4797ecb8084965f0c07975c4f17e96c3b4e
data/.rubocop.yml ADDED
@@ -0,0 +1,10 @@
1
+ # The behavior of RuboCop can be controlled via the .rubocop.yml
2
+ # configuration file. It makes it possible to enable/disable
3
+ # certain cops (checks) and to alter their behavior if they accept
4
+ # any parameters. The file can be placed either in your home
5
+ # directory or in some project directory.
6
+ #
7
+ # RuboCop will start looking for the configuration file in the directory
8
+ # where the inspected file is and continue its way up to the root directory.
9
+ #
10
+ # See https://docs.rubocop.org/rubocop/configuration
data/Gemfile CHANGED
@@ -1,21 +1,23 @@
1
- source "https://rubygems.org"
1
+ # frozen_string_literal: true
2
2
 
3
- #ruby '2.6.10'
3
+ source 'https://rubygems.org'
4
+
5
+ # ruby '3.0.2'
4
6
 
5
- gem 'net-ping'
6
7
  gem 'dry-container'
8
+ gem 'net-ping'
9
+ gem 'rake'
7
10
  gem 'sqlite3'
8
11
  gem 'standalone_migrations'
12
+ gem 'text-table'
9
13
 
10
- gem 'sinatra-activerecord', :require => 'sinatra/activerecord'
11
- gem 'rack', '>= 2.0.6'
14
+ gem 'async-dns'
12
15
  gem 'pry'
16
+ gem 'rack', '>= 2.0.6'
13
17
  gem 'rubydns'
14
- gem 'async-dns'
18
+ gem 'sinatra-activerecord'
15
19
  # rest http server
20
+ gem 'net_http_unix' # socket client
16
21
  gem 'sinatra'
17
22
  gem 'thin' # socket server
18
- gem 'net_http_unix' # socket client
19
- #gem 'puma'
20
-
21
-
23
+ # gem 'puma'
data/Gemfile.lock CHANGED
@@ -104,6 +104,7 @@ GEM
104
104
  nokogiri (~> 1.14)
105
105
  railties (>= 6.0.0, < 7.1.0)
106
106
  rake (>= 10.0)
107
+ text-table (1.2.4)
107
108
  thin (1.8.2)
108
109
  daemons (~> 1.0, >= 1.0.9)
109
110
  eventmachine (~> 1.0, >= 1.0.4)
@@ -126,11 +127,13 @@ DEPENDENCIES
126
127
  net_http_unix
127
128
  pry
128
129
  rack (>= 2.0.6)
130
+ rake
129
131
  rubydns
130
132
  sinatra
131
133
  sinatra-activerecord
132
134
  sqlite3
133
135
  standalone_migrations
136
+ text-table
134
137
  thin
135
138
 
136
139
  BUNDLED WITH
data/README.md CHANGED
@@ -53,35 +53,46 @@ There's also samples on the samples dir, for daemontools and systemd.
53
53
 
54
54
  ### Accessing the API
55
55
 
56
- * Create new service
57
- * `mkitc create samples/apps/rabbitmq.yml`
58
- * Update service
59
- * `mkitc update samples/apps/rabbitmq.yml`
60
- * Get service
61
- * `mkitc ps {id|service_name}`
62
- * Delete service
63
- * `mkitc rm {id|service_name}`
64
- * List services
65
- * `mkitc ps [-v (verbose)]`
66
- * Control service
67
- * `mkitc start {id|service_name}`
68
- * `mkitc stop {id|service_name}`
56
+ A client is provided to interact with mkit server.
57
+
58
+ Run `mkitc help` to list current supported commands.
59
+
60
+ ```
61
+ Usage: mkitc <command> [options]
62
+
63
+ Micro k8s on Ruby - a simple tool to mimic a (very) minimalistic k8 cluster
64
+
65
+ Commands:
66
+
67
+ ps show services status (alias for status)
68
+ status show services status
69
+ start start service
70
+ stop stop service
71
+ restart restart service
72
+ create create new service
73
+ update update service
74
+ rm remove service
75
+ version prints mkit server version
76
+ proxy haproxy status and control
77
+
78
+ Run 'mkitc help <command>' for specific command information.
79
+ ```
69
80
 
70
81
  Example:
71
82
 
72
83
  ```
73
84
  $ mkitc ps postgres
74
- id name addr ports status
75
- 4 postgres 10.210.198.10 tcp/5432 RUNNING
76
- pods
77
- id pod_id pod_name pod_ip status
78
- 19 4ce31a007211 5d148a16f3aa 172.17.0.2 RUNNING
85
+ +----+----------+---------------+----------+--------------+---------+
86
+ | id | name | addr | ports | pods | status |
87
+ +----+----------+---------------+----------+--------------+---------+
88
+ | 2 | postgres | 10.210.198.10 | tcp/4532 | 49b5e4c8f247 | RUNNING |
89
+ +----+----------+---------------+----------+--------------+---------+
79
90
  ```
80
91
  The service `postgres` is available on IP `10.210.198.10:5432`
81
92
 
82
93
  ## Configuration
83
94
 
84
- On startup, configuration files on `config` directory will be copied to `/etc/mkit`. HAProxy config dir and control commands are defined on `mkit_config.yml`
95
+ On startup, configuration files on `config` directory will be copied to `/etc/mkit`. HAProxy config directory and control commands are defined on `mkit_config.yml`
85
96
 
86
97
  You must configure `haproxy` to use config directory. e.g. on Ubuntu
87
98
 
@@ -115,8 +126,8 @@ service:
115
126
  - 5672:5672:tcp:round_robin
116
127
  - 80:15672:http:round_robin
117
128
  resources:
118
- max_replicas: 1
119
- min_replicas: 1
129
+ min_replicas: 1 # default value
130
+ max_replicas: 1 # default value
120
131
  volumes:
121
132
  - docker://mkit_rabbitmq_data:/var/lib/rabbitmq # a docker volume - it will be created if it does not exists
122
133
  - /var/log/rabbitmq/logs:/var/log/rabbitmq # a local volume
data/Rakefile CHANGED
@@ -1,7 +1,8 @@
1
- ENV["SINATRA_ENV"] ||= "development"
1
+ # frozen_string_literal: true
2
+
3
+ ENV['SINATRA_ENV'] ||= 'development'
2
4
 
3
5
  require 'rubygems'
4
- require 'sinatra/activerecord/rake'
5
6
  require 'standalone_migrations'
6
7
  require 'rubygems/package_task'
7
8
  require 'rubygems/specification'
@@ -11,32 +12,33 @@ require 'fileutils'
11
12
  require 'bundler/setup'
12
13
  require 'dry-container'
13
14
  require 'sinatra/activerecord'
15
+ require 'sinatra/activerecord/rake'
14
16
  require 'rubydns'
15
17
  require_relative 'lib/mkit/version.rb'
16
18
  require_relative 'lib/mkit/utils'
17
19
  require_relative 'lib/mkit'
18
20
 
19
21
  $LOAD_PATH.unshift File.expand_path('lib')
20
- rails_env=ENV["RAILS_ENV"] || ENV["RACK_ENV"] || "development"
22
+ rails_env = ENV['RAILS_ENV'] || ENV['RACK_ENV'] || 'development'
21
23
  # db migrations, use database config
22
- ENV["DATABASE_URL"]=MKIt::Utils.db_config_to_uri(rails_env)
24
+ ENV['DATABASE_URL'] = MKIt::Utils.db_config_to_uri(rails_env)
23
25
 
24
26
  desc 'Builds the gem'
25
27
  task :package do
26
- sh %{gem build "mkit.gemspec"}
28
+ sh %(gem build "mkit.gemspec")
27
29
  end
28
30
 
29
- task :install => [:package] do
30
- sh %{gem install mkit-#{MKIt::VERSION}.gem}
31
+ task install: [:package] do
32
+ sh %(gem install mkit-#{MKIt::VERSION}.gem)
31
33
  end
32
34
 
33
35
  desc 'Copy rb to packaging dir'
34
- task :build => [:init] do
35
- FileUtils.cp_r('app', 'target/build', {:remove_destination=>true})
36
- FileUtils.cp_r('config', 'target/build', {:remove_destination=>true})
37
- FileUtils.cp_r('bin', 'target/build', {:remove_destination=>true})
38
- FileUtils.cp_r('lib', 'target/build', {:remove_destination=>true})
39
- FileUtils.cp_r('config.ru', 'target/build', {:remove_destination=>true})
36
+ task build: [:init] do
37
+ FileUtils.cp_r('app', 'target/build', { remove_destination: true })
38
+ FileUtils.cp_r('config', 'target/build', { remove_destination: true })
39
+ FileUtils.cp_r('bin', 'target/build', { remove_destination: true })
40
+ FileUtils.cp_r('lib', 'target/build', { remove_destination: true })
41
+ FileUtils.cp_r('config.ru', 'target/build', { remove_destination: true })
40
42
  end
41
43
 
42
44
  desc 'Create build dirs'
@@ -45,10 +47,9 @@ task :init do
45
47
  FileUtils.mkdir_p('target/package')
46
48
  end
47
49
 
48
- desc "Rake Console"
50
+ desc 'Rake Console'
49
51
  task :console do
50
52
  Pry.start
51
53
  end
52
54
 
53
55
  StandaloneMigrations::Tasks.load_tasks
54
-
data/bin/mkitc CHANGED
@@ -8,104 +8,270 @@ require 'net/http'
8
8
  require 'json'
9
9
  require 'net_http_unix'
10
10
  require 'securerandom'
11
+ require 'erb'
11
12
 
12
- class MKItClient
13
+ class InvalidParametersException < RuntimeError
14
+ attr_reader :command
15
+ def initialize(cause, command = nil)
16
+ super(cause)
17
+ @command = command
18
+ end
19
+ end
13
20
 
21
+ class MKItClient
14
22
  def initialize
15
- @client = NetX::HTTPUnix.new("localhost",4567)
23
+ @client = NetX::HTTPUnix.new('localhost', 4567)
16
24
  end
17
25
 
18
- def parse_args(args)
19
- request = nil
20
- case args[0]
21
- when /^ps$/
22
- if args.include?('-v')
23
- params = {verbose: 'true'}
24
- args.delete('-v')
25
- else
26
- params = {}
27
- end
28
- case args.size
29
- when 1
30
- #mkitc ps [-v] GET services[?verbose=true]
31
- request = { verb: :get, uri: '/services', params: params }
32
- when 2
33
- #mkitc ps {id} GET services/{id}
34
- id = args[1]
35
- request = { verb: :get, uri: "/services/#{id}" }
36
- else
37
- raise 'invalid parameters'
38
- end
39
- when /^config:show$/
40
- #mkitc config:show {id} => GET services/{id}/config
41
- #TODO
42
- when /^stop$/
43
- #mkitc stop {id} => PUT services/{id}/stop
44
- case args.size
45
- when 2
46
- id = args[1]
47
- request = { verb: :put, uri: "/services/#{id}/stop" }
48
- else
49
- raise 'invalid parameters'
26
+ def dict
27
+ global_args = [
28
+ { short: '-v', long: '--verbose', help: 'verbose', mandatory: false, value: nil }
29
+ ]
30
+ command_dict = [
31
+ {
32
+ cmd: 'ps',
33
+ args: [
34
+ { name: 'id', mandatory: false, uri: '/<%=id%>' }
35
+ ],
36
+ help: 'show services status (alias for status)',
37
+ usage: ['[service_id_or_name]'],
38
+ request: { verb: :get, uri: '/services' }
39
+ },
40
+ {
41
+ cmd: 'status',
42
+ args: [
43
+ { name: 'id', mandatory: false, uri: '/<%=id%>' }
44
+ ],
45
+ help: 'show services status',
46
+ usage: ['[service_id_or_name]'],
47
+ request: { verb: :get, uri: '/services' }
48
+ },
49
+ {
50
+ cmd: 'start',
51
+ args: [
52
+ { name: 'id', mandatory: true }
53
+ ],
54
+ help: 'start service',
55
+ usage: ['<service_id_or_name>'],
56
+ request: { verb: :put, uri: '/services/<%=id%>/start' }
57
+ },
58
+ {
59
+ cmd: 'stop',
60
+ args: [
61
+ { name: 'id', mandatory: true }
62
+ ],
63
+ help: 'stop service',
64
+ usage: ['<service_id_or_name>'],
65
+ request: { verb: :put, uri: '/services/<%=id%>/stop' }
66
+ },
67
+ {
68
+ cmd: 'restart',
69
+ args: [
70
+ { name: 'id', mandatory: true }
71
+ ],
72
+ help: 'restart service',
73
+ usage: ['<service_id_or_name>'],
74
+ request: { verb: :put, uri: '/services/<%=id%>/restart' }
75
+ },
76
+ {
77
+ cmd: 'create',
78
+ args: [
79
+ { name: 'file', mandatory: true }
80
+ ],
81
+ help: 'create new service',
82
+ usage: ['<service.yaml>'],
83
+ request: { verb: :post, uri: '/services' }
84
+ },
85
+ {
86
+ cmd: 'update',
87
+ args: [
88
+ { name: 'file', mandatory: true }
89
+ ],
90
+ help: 'update service',
91
+ usage: ['<service.yaml>'],
92
+ request: { verb: :put, uri: '/services/<%=id%>' }
93
+ },
94
+ {
95
+ cmd: 'rm',
96
+ args: [
97
+ { name: 'id', mandatory: true }
98
+ ],
99
+ help: 'remove service',
100
+ usage: ['<service_id_or_name>'],
101
+ request: { verb: :delete, uri: '/services/<%=id%>' }
102
+ },
103
+ {
104
+ cmd: 'version',
105
+ help: 'prints mkit server version',
106
+ request: { verb: :get, uri: '/mkit/version' }
107
+ },
108
+ {
109
+ cmd: 'proxy',
110
+ options: [
111
+ {
112
+ cmd: 'start',
113
+ request: { verb: :put, uri: '/mkit/proxy/start' },
114
+ help: 'start proxy service'
115
+ },
116
+ {
117
+ cmd: 'stop',
118
+ request: { verb: :put, uri: '/mkit/proxy/stop' },
119
+ help: 'stop proxy service'
120
+ },
121
+ {
122
+ cmd: 'restart',
123
+ request: { verb: :put, uri: '/mkit/proxy/restart' },
124
+ help: 'restarts proxy service'
125
+ },
126
+ {
127
+ cmd: 'status',
128
+ request: { verb: :get, uri: '/mkit/proxy/status' },
129
+ help: 'proxy service status'
130
+ }
131
+ ],
132
+ help: 'haproxy status and control',
133
+ usage: ['<start|stop|restart|status>']
134
+ }
135
+ ]
136
+ command_dict
137
+ end
138
+
139
+ def help(cause: nil, cmd: nil)
140
+ msg = ''
141
+ if cause.nil?
142
+ my_cmd = cmd
143
+ else
144
+ msg += "MKItc: #{cause.message}\n"
145
+ my_cmd = cause.command
146
+ end
147
+ if my_cmd.nil?
148
+ msg += "\nUsage: mkitc <command> [options]\n\n"
149
+ msg += "Micro k8s on Ruby - a simple tool to mimic a (very) minimalistic k8 cluster\n\n"
150
+ msg += "Commands:\n\n"
151
+ dict.each do |c|
152
+ msg += format("%-10s %s\n", c[:cmd], c[:help])
50
153
  end
51
- when /^start$/
52
- #mkitc start {id} => PUT services/{id}/start
53
- case args.size
54
- when 2
55
- id = args[1]
56
- request = { verb: :put, uri: "/services/#{id}/start" }
57
- else
58
- raise 'invalid parameters'
154
+ msg += "\n"
155
+ msg += "Run 'mkitc help <command>' for specific command information.\n\n"
156
+ else
157
+ msg += format("\nUsage: mkitc %s %s\n\n", my_cmd[:cmd], my_cmd[:usage].nil? ? '' : my_cmd[:usage].join(' '))
158
+ msg += format("%s\n", my_cmd[:help])
159
+ unless my_cmd[:options].nil?
160
+ msg += "\nOptions:\n"
161
+ my_cmd[:options].each do |c|
162
+ msg += format("%-10s %s\n", c[:cmd], c[:help])
163
+ end
59
164
  end
60
- when /^rm$/
61
- #mkitc rm {id} => DELETE services/{id}
62
- case args.size
63
- when 2
64
- id = args[1]
65
- request = { verb: :delete, uri: "/services/#{id}" }
66
- else
67
- raise 'invalid parameters'
165
+ msg += "\n"
166
+ end
167
+ puts msg
168
+ exit 1
169
+ end
170
+
171
+ def create(request, request_hash = nil)
172
+ unless File.file?(request_hash[:file])
173
+ raise InvalidParametersException.new('File not found.', c = dict.select { |k| k[:cmd] == 'create' }.first)
174
+ end
175
+
176
+ yaml = YAML.load_file(request_hash[:file])
177
+ if yaml['service'].nil?
178
+ raise InvalidParametersException.new('Invalid configuration file', c = dict.select { |k| k[:cmd] == 'create' }.first)
179
+ else
180
+ request(request, request_hash)
181
+ end
182
+ end
183
+
184
+ def update(request, request_hash = nil)
185
+ unless File.file?(request_hash[:file])
186
+ raise InvalidParametersException.new('File not found.', c = dict.select { |k| k[:cmd] == 'update' }.first)
187
+ end
188
+
189
+ yaml = YAML.load_file(request_hash[:file])
190
+ if yaml['service'].nil?
191
+ raise InvalidParametersException.new('Invalid configuration file', c = dict.select { |k| k[:cmd] == 'update' }.first)
192
+ else
193
+ id = yaml['service']['name']
194
+ request_hash[:id] = id
195
+ request(request, request_hash)
196
+ end
197
+ end
198
+
199
+ def parse_args(args)
200
+ cmd = args[0]
201
+ c = nil
202
+ # short circuit for help
203
+ if cmd == 'help' || args.empty?
204
+ if args.size > 1
205
+ c = dict.select { |k| k[:cmd] == args[1] }.first
206
+ raise InvalidParametersException, "'#{args[1]}' is not a valid help topic." if c.nil?
68
207
  end
69
- when /^create$/
70
- #mkitc create service.yaml => POST services service.yaml
71
- case args.size
72
- when 2
73
- file = args[1]
74
- request = { verb: :post, uri: "/services", file: file }
75
- else
76
- raise 'invalid parameters'
208
+ return help(cmd: c)
209
+ else
210
+ c = dict.select { |k| k[:cmd] == cmd }.first
211
+ end
212
+ raise InvalidParametersException, 'Command not found' if c.nil?
213
+
214
+ myargs = args.dup
215
+ myargs.delete(cmd)
216
+
217
+ max_args_size = c[:args].nil? ? 0 : c[:args].size
218
+ max_options_size = c[:options].nil? ? 0 : 1
219
+ max_args_size += max_options_size
220
+
221
+ min_args_size = c[:args].nil? ? 0 : c[:args].select { |a| a[:mandatory] == true }.size
222
+ min_options_size = c[:options].nil? ? 0 : 1
223
+ min_args_size += min_options_size
224
+
225
+ if myargs.size > max_args_size || myargs.size < min_args_size
226
+ raise InvalidParametersException.new('Invalid parameters found.', c)
227
+ end
228
+
229
+ request_hash = {}
230
+ request = c[:request]
231
+ unless myargs.empty?
232
+ unless c[:args].nil?
233
+ idx = 0
234
+ c[:args].each do |a|
235
+ request_hash[a[:name].to_sym] = myargs[idx]
236
+ request[:uri] = request[:uri] + a[:uri] unless a[:uri].nil?
237
+ idx += 1
238
+ end
77
239
  end
78
- when /^update$/
79
- #mkitc update service.yaml => PUT services/{id} service.yaml
80
- case args.size
81
- when 2
82
- file = args[1]
83
- yaml = YAML.load_file(file)
84
- if yaml["service"].nil?
85
- raise 'invalid configuration file'
86
- else
87
- id = yaml["service"]["name"]
88
- request = { verb: :put, uri: "/services/#{id}", file: file }
240
+ # options
241
+ unless c[:options].nil?
242
+ option = nil
243
+ myargs.each do |s|
244
+ option = c[:options].select { |o| o[:cmd] == s }.first
245
+ raise InvalidParametersException.new('Invalid parameters found.', c) if option.nil? || option.empty?
89
246
  end
90
- else
91
- raise 'invalid parameters'
247
+ raise InvalidParametersException.new('Invalid parameters found.', c) if option.nil? || option.empty?
248
+
249
+ request = option[:request]
92
250
  end
251
+ end
252
+ raise InvalidParametersException, "Can't find request." if request.nil?
253
+
254
+ if respond_to? c[:cmd]
255
+ send(c[:cmd], request, request_hash)
93
256
  else
94
- raise "Usage: invalid parameters"
257
+ request(request, request_hash)
95
258
  end
96
- request
97
259
  end
98
260
 
99
261
  def doIt(args)
100
- operation = parse_args(args)
101
- puts request(operation).body
262
+ result = parse_args(args)
263
+ puts result
264
+ rescue InvalidParametersException => e
265
+ help(cause: e)
102
266
  end
103
267
 
104
- def request(request)
268
+ def request(request, request_args = nil)
105
269
  req = nil
106
- uri = request[:uri]
270
+ uri = ERB.new(request[:uri]).result_with_hash(request_args)
271
+ request[:file] = request_args[:file]
272
+
107
273
  unless request[:params].nil? || request[:params].empty?
108
- uri = uri + '?' + request[:params].map{|k,v| "#{k}=#{v}"}.join('&')
274
+ uri = uri + '?' + request[:params].map { |k, v| "#{k}=#{v}" }.join('&')
109
275
  end
110
276
  case request[:verb]
111
277
  when :post
@@ -113,14 +279,14 @@ class MKItClient
113
279
  unless request[:file].nil?
114
280
  (body, boundary) = attach(request[:file])
115
281
  req.body = body
116
- req["Content-Type"] = "multipart/form-data, boundary=#{boundary}"
282
+ req['Content-Type'] = "multipart/form-data, boundary=#{boundary}"
117
283
  end
118
284
  when :put
119
285
  req = Net::HTTP::Put.new(uri)
120
286
  unless request[:file].nil?
121
287
  (body, boundary) = attach(request[:file])
122
288
  req.body = body
123
- req["Content-Type"] = "multipart/form-data, boundary=#{boundary}"
289
+ req['Content-Type'] = "multipart/form-data, boundary=#{boundary}"
124
290
  end
125
291
  when :patch
126
292
  req = Net::HTTP::Patch.new(uri)
@@ -129,11 +295,11 @@ class MKItClient
129
295
  when :delete
130
296
  req = Net::HTTP::Delete.new(uri)
131
297
  end
132
- @client.request(req)
298
+ @client.request(req).body
133
299
  end
134
300
 
135
301
  def attach(file)
136
- boundary=SecureRandom.alphanumeric
302
+ boundary = SecureRandom.alphanumeric
137
303
  body = []
138
304
  body << "--#{boundary}\r\n"
139
305
  body << "Content-Disposition: form-data; name=file; filename='#{File.basename(file)}'\r\n"
@@ -141,7 +307,7 @@ class MKItClient
141
307
  body << "\r\n"
142
308
  body << File.read(file)
143
309
  body << "\r\n--#{boundary}--\r\n"
144
- [ body.join, boundary]
310
+ [body.join, boundary]
145
311
  end
146
312
  end
147
313
 
@@ -155,4 +321,3 @@ client.doIt(ARGV.dup)
155
321
  # parse args
156
322
  # host, socket, config file
157
323
  # end
158
-
data/bin/mkitd CHANGED
@@ -10,23 +10,21 @@ def up
10
10
  require 'sinatra/base'
11
11
  require 'mkit'
12
12
  # defaults
13
- PARAMS_CONFIG[:bind] ||= "localhost"
13
+ PARAMS_CONFIG[:bind] ||= 'localhost'
14
14
  PARAMS_CONFIG[:port] ||= 4567
15
- #
16
15
  MKIt.startup(options: PARAMS_CONFIG)
17
16
 
18
17
  use Rack::MethodOverride
19
18
  use ServicesController
20
19
  use MkitJobsController
20
+ use MkitController
21
21
 
22
22
  # sinatra::base ignores in parameters
23
23
  # set it here or via configure...
24
- Sinatra::Application.run!({port: PARAMS_CONFIG[:port], bind: PARAMS_CONFIG[:bind] })
24
+ Sinatra::Application.run!({ port: PARAMS_CONFIG[:port], bind: PARAMS_CONFIG[:bind] })
25
25
  # MKIt::Server.run
26
26
  end
27
27
 
28
-
29
- #
30
28
  if ARGV.any?
31
29
  require 'optparse'
32
30
  parser = OptionParser.new do |op|
@@ -52,4 +50,3 @@ if ARGV.any?
52
50
  end
53
51
 
54
52
  up
55
-
@@ -4,11 +4,11 @@ mkit:
4
4
  haproxy:
5
5
  config_dir: /etc/haproxy/haproxy.d
6
6
  ctrl:
7
- start: /etc/init.d/haproxy start
8
- stop: /etc/init.d/haproxy stop
9
- reload: /etc/init.d/haproxy restart
10
- restart: /etc/init.d/haproxy restart
11
- status: /etc/init.d/haproxy status
7
+ start: systemctl start haproxy
8
+ stop: systemctl stop haproxy
9
+ reload: systemctl reload haproxy
10
+ restart: systemctl restart haproxy
11
+ status: systemctl status haproxy
12
12
  bin: /usr/sbin/haproxy
13
13
  database:
14
14
  env: development