Remove error if there was no error anymore

also add pod uri when logging offline pods ... just having a bunch of
"OFFLINE" log messages doesn't help at all.
This commit is contained in:
Benjamin Neff 2022-07-23 17:58:09 +02:00
parent eb1c571511
commit b29675fead
No known key found for this signature in database
GPG key ID: 971464C3F1A90194
2 changed files with 18 additions and 16 deletions

View file

@ -114,7 +114,7 @@ class Pod < ApplicationRecord
def update_from_result(result)
self.status = status_from_result(result)
update_offline_since
logger.warn "OFFLINE #{result.failure_message}" if offline?
logger.warn "#{uri} OFFLINE: #{result.failure_message}" if offline?
attributes_from_result(result)
touch(:checked_at)
@ -125,7 +125,7 @@ class Pod < ApplicationRecord
def attributes_from_result(result)
self.ssl ||= result.ssl
self.error = result.failure_message[0..254] if result.error?
self.error = result.error? ? result.failure_message[0..254] : nil
self.software = result.software_version[0..254] if result.software_version.present?
self.response_time = result.rt
end

View file

@ -143,31 +143,28 @@ describe Pod, type: :model do
describe "#test_connection!" do
before do
@pod = FactoryGirl.create(:pod)
@result = double("result")
@now = Time.zone.now
allow(@result).to receive(:rt) { 123 }
allow(@result).to receive(:software_version) { "diaspora a.b.c.d" }
allow(@result).to receive(:failure_message) { "hello error!" }
@result = ConnectionTester::Result.new
@result.rt = 123
@result.software_version = "diaspora a.b.c.d"
@result.error = ConnectionTester::NetFailure.new("hello error!")
expect(ConnectionTester).to receive(:check).at_least(:once).and_return(@result)
end
it "updates the connectivity values" do
allow(@result).to receive(:error)
allow(@result).to receive(:error?)
@result.error = nil
@pod.test_connection!
expect(@pod.status).to eq("no_errors")
expect(@pod.offline?).to be_falsy
expect(@pod.offline?).to be_falsey
expect(@pod.response_time).to eq(123)
expect(@pod.checked_at).to be_within(1.second).of @now
end
it "resets the scheduled_check flag" do
allow(@result).to receive(:error)
allow(@result).to receive(:error?)
@pod.update_column(:scheduled_check, true)
@pod.update(scheduled_check: true)
@pod.test_connection!
@ -175,17 +172,22 @@ describe Pod, type: :model do
end
it "handles a failed check" do
expect(@result).to receive(:error?).at_least(:once) { true }
expect(@result).to receive(:error).at_least(:once) { ConnectionTester::NetFailure.new }
@pod.test_connection!
expect(@pod.offline?).to be_truthy
expect(@pod.offline_since).to be_within(1.second).of @now
end
it "removes the error message when there was no error" do
@pod.update(error: "old error message")
@result.error = nil
@pod.test_connection!
expect(@pod.error).to be_nil
end
it "preserves the original offline timestamp" do
expect(@result).to receive(:error?).at_least(:once) { true }
expect(@result).to receive(:error).at_least(:once) { ConnectionTester::NetFailure.new }
@pod.test_connection!
expect(@pod.offline_since).to be_within(1.second).of @now