Handle correctly missing port

v1
Aeris 2016-02-19 22:21:23 +01:00
parent 018f2ba6f5
commit 66fc57c4d8
4 changed files with 16 additions and 11 deletions

View File

@ -23,7 +23,7 @@ class CheckController < ApplicationController
protected
def enqueue_host
Datastore.pending self.type, @id
Datastore.pending self.type, @id, @port
self.worker.perform_async *(@port.blank? ? [@host] : [@host, @port])
@result = OpenStruct.new pending: true , date: Time.now
end
@ -37,6 +37,6 @@ class CheckController < ApplicationController
redirect_to action: :index
return false
end
@result = Datastore.host self.type, @id
@result = Datastore.host self.type, @host, @port
end
end

View File

@ -35,8 +35,7 @@ class CheckWorker
rescue CryptCheck::Tls::Server::TLSNotAvailableException
{ no_tls: true }
end
host = "#{host}:#{port}" if port
Datastore.post self.type, host, result
Datastore.post self.type, host, port, result
end
protected

View File

@ -16,6 +16,6 @@ class SSHWorker
rescue CryptCheck::Ssh::Server::SshNotAvailableException
{ no_tls: true }
end
Datastore.post :ssh, "#{host}:#{port}", result
Datastore.post :ssh, host, port, result
end
end

View File

@ -2,19 +2,25 @@ class Datastore
@@index = Stretcher::Server.new(ENV['ES_URL']).index :cryptcheck
@@index.create unless @@index.exists?
def self.host(type, name)
result = @@index.type(type).get name
def self.host(type, host, port)
result = @@index.type(type).get self.key(host, port)
result.date = Time.parse result.date
result
rescue Stretcher::RequestError::NotFound
end
def self.pending(type, name)
self.post type, name, { pending: true }
def self.pending(type, host, port)
self.post type, host, port, { pending: true }
end
def self.post(type, name, data)
def self.post(type, host, port, data)
data[:date] = DateTime.now
@@index.type(type).put name, data
@@index.type(type).put self.key(host, port), data
end
private
def self.key(host, port)
host = "#{host}:#{port}" if port
host
end
end