mkit 0.4.1 → 0.4.2

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