-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathapp.rb
47 lines (38 loc) · 1.03 KB
/
app.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
require 'sinatra'
require 'k8s-ruby'
require 'sequel'
require 'uri'
require 'net/http'
unless ENV["DB_URL"].nil?
DB = Sequel.connect(ENV["DB_URL"])
end
get '/' do
"Welcome to Service Messer."
end
get '/coin-flipper' do
code = rand(200..599)
status code
"Code: #{code}"
end
get '/ping' do
excluded_namespaces = Array(params['exclude'].to_s.split(","))
client = K8s::Client.in_cluster_config
client.api('v1').resource('services').list.each do |svc|
next if excluded_namespaces.include?(svc.metadata.namespace)
svc.spec.ports.each do |p|
uri = URI("http://#{svc.metadata.name}.#{svc.metadata.namespace}:#{p.port}")
puts "Pinging #{uri}"
res = Net::HTTP.get_response(uri)
puts res.inspect
end
end
end
get '/add-message/:message' do
messages = DB[:messages] # Create a dataset
messages.insert(:message => params['message'])
"Total messages: #{messages.count}"
end
get '/messages' do
messages = DB[:messages] # Create a dataset
messages.map { |m| "<p>#{m[:id]}: #{m[:message]}</p>" }
end