Fix Docker container status checking in health check server
All checks were successful
CI Pipeline / test (push) Successful in 45s
CI Pipeline / build (push) Successful in 25s
CI Pipeline / notify (push) Successful in 1s

- Improve container state detection to handle different Docker API responses
- Check both string and hash format state responses
- Add proper error handling for container state queries
- Update test results with latest timing information

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
James Paterni 2025-07-16 09:00:53 -04:00
parent c85c4a897b
commit 741fbbd97f
2 changed files with 137 additions and 121 deletions

View file

@ -279,10 +279,26 @@ class Baktainer::HealthCheckServer < Sinatra::Base
end
def check_docker_status
all_containers = Docker::Container.all
running_containers = all_containers.select do |container|
begin
state = container.info['State']
if state.is_a?(String)
state == 'running'
elsif state.is_a?(Hash)
state['Status'] == 'running' || state['Running'] == true
else
false
end
rescue
false
end
end
{
version: Docker.version,
containers_total: Docker::Container.all.size,
containers_running: Docker::Container.all(filters: { status: ['running'] }).size,
containers_total: all_containers.size,
containers_running: running_containers.size,
backup_containers: Baktainer::Containers.find_all(@dependency_container).size
}
rescue => e

View file

@ -1,123 +1,123 @@
example_id | status | run_time |
------------------------------------------------- | ------ | --------------- |
./spec/integration/backup_workflow_spec.rb[1:1:1] | passed | 0.00318 seconds |
./spec/integration/backup_workflow_spec.rb[1:1:2] | passed | 0.00332 seconds |
./spec/integration/backup_workflow_spec.rb[1:2:1] | passed | 0.00772 seconds |
./spec/integration/backup_workflow_spec.rb[1:2:2] | passed | 0.00195 seconds |
./spec/integration/backup_workflow_spec.rb[1:3:1] | passed | 0.00807 seconds |
./spec/integration/backup_workflow_spec.rb[1:3:2] | passed | 0.00176 seconds |
./spec/integration/backup_workflow_spec.rb[1:4:1] | passed | 0.00917 seconds |
./spec/integration/backup_workflow_spec.rb[1:4:2] | passed | 0.00357 seconds |
./spec/integration/backup_workflow_spec.rb[1:5:1] | passed | 0.52901 seconds |
./spec/integration/backup_workflow_spec.rb[1:5:2] | passed | 0.52794 seconds |
./spec/integration/backup_workflow_spec.rb[1:5:3] | passed | 0.1106 seconds |
./spec/integration/backup_workflow_spec.rb[1:6:1] | passed | 0.00659 seconds |
./spec/integration/backup_workflow_spec.rb[1:6:2] | passed | 0.00855 seconds |
./spec/integration/backup_workflow_spec.rb[1:7:1] | passed | 0.52686 seconds |
./spec/unit/backup_command_spec.rb[1:1:1] | passed | 0.00056 seconds |
./spec/unit/backup_command_spec.rb[1:1:2] | passed | 0.00049 seconds |
./spec/unit/backup_command_spec.rb[1:2:1] | passed | 0.00033 seconds |
./spec/unit/backup_command_spec.rb[1:3:1] | passed | 0.00034 seconds |
./spec/unit/backup_command_spec.rb[1:3:2] | passed | 0.00029 seconds |
./spec/unit/backup_command_spec.rb[1:4:1] | passed | 0.00058 seconds |
./spec/unit/backup_command_spec.rb[1:5:1] | passed | 0.00028 seconds |
./spec/unit/backup_command_spec.rb[1:5:2] | passed | 0.00029 seconds |
./spec/unit/backup_command_spec.rb[1:6:1] | passed | 0.00028 seconds |
./spec/unit/backup_command_spec.rb[1:7:1] | passed | 0.00058 seconds |
./spec/unit/backup_command_spec.rb[1:7:2] | passed | 0.00062 seconds |
./spec/unit/backup_command_spec.rb[1:8:1] | passed | 0.00031 seconds |
./spec/unit/backup_command_spec.rb[1:8:2] | passed | 0.00035 seconds |
./spec/unit/backup_command_spec.rb[1:8:3] | passed | 0.00033 seconds |
./spec/unit/backup_command_spec.rb[1:8:4] | passed | 0.00032 seconds |
./spec/unit/backup_command_spec.rb[1:8:5:1] | passed | 0.00032 seconds |
./spec/integration/backup_workflow_spec.rb[1:1:1] | passed | 0.00191 seconds |
./spec/integration/backup_workflow_spec.rb[1:1:2] | passed | 0.0024 seconds |
./spec/integration/backup_workflow_spec.rb[1:2:1] | passed | 0.01827 seconds |
./spec/integration/backup_workflow_spec.rb[1:2:2] | passed | 0.00589 seconds |
./spec/integration/backup_workflow_spec.rb[1:3:1] | passed | 0.0091 seconds |
./spec/integration/backup_workflow_spec.rb[1:3:2] | passed | 0.00232 seconds |
./spec/integration/backup_workflow_spec.rb[1:4:1] | passed | 0.00732 seconds |
./spec/integration/backup_workflow_spec.rb[1:4:2] | passed | 0.00219 seconds |
./spec/integration/backup_workflow_spec.rb[1:5:1] | passed | 0.53404 seconds |
./spec/integration/backup_workflow_spec.rb[1:5:2] | passed | 0.52251 seconds |
./spec/integration/backup_workflow_spec.rb[1:5:3] | passed | 0.11007 seconds |
./spec/integration/backup_workflow_spec.rb[1:6:1] | passed | 0.00357 seconds |
./spec/integration/backup_workflow_spec.rb[1:6:2] | passed | 0.02485 seconds |
./spec/integration/backup_workflow_spec.rb[1:7:1] | passed | 0.53235 seconds |
./spec/unit/backup_command_spec.rb[1:1:1] | passed | 0.00029 seconds |
./spec/unit/backup_command_spec.rb[1:1:2] | passed | 0.0003 seconds |
./spec/unit/backup_command_spec.rb[1:2:1] | passed | 0.0003 seconds |
./spec/unit/backup_command_spec.rb[1:3:1] | passed | 0.00031 seconds |
./spec/unit/backup_command_spec.rb[1:3:2] | passed | 0.0003 seconds |
./spec/unit/backup_command_spec.rb[1:4:1] | passed | 0.00061 seconds |
./spec/unit/backup_command_spec.rb[1:5:1] | passed | 0.0003 seconds |
./spec/unit/backup_command_spec.rb[1:5:2] | passed | 0.0003 seconds |
./spec/unit/backup_command_spec.rb[1:6:1] | passed | 0.00033 seconds |
./spec/unit/backup_command_spec.rb[1:7:1] | passed | 0.00029 seconds |
./spec/unit/backup_command_spec.rb[1:7:2] | passed | 0.00027 seconds |
./spec/unit/backup_command_spec.rb[1:8:1] | passed | 0.00032 seconds |
./spec/unit/backup_command_spec.rb[1:8:2] | passed | 0.00031 seconds |
./spec/unit/backup_command_spec.rb[1:8:3] | passed | 0.00029 seconds |
./spec/unit/backup_command_spec.rb[1:8:4] | passed | 0.00029 seconds |
./spec/unit/backup_command_spec.rb[1:8:5:1] | passed | 0.00033 seconds |
./spec/unit/backup_command_spec.rb[1:8:5:2] | passed | 0.00029 seconds |
./spec/unit/backup_command_spec.rb[1:8:5:3] | passed | 0.0003 seconds |
./spec/unit/backup_command_spec.rb[1:8:5:4] | passed | 0.00029 seconds |
./spec/unit/backup_command_spec.rb[1:8:5:5] | passed | 0.00032 seconds |
./spec/unit/backup_encryption_spec.rb[1:1:1] | passed | 0.00139 seconds |
./spec/unit/backup_encryption_spec.rb[1:1:2:1] | passed | 0.00134 seconds |
./spec/unit/backup_encryption_spec.rb[1:2:1:1] | passed | 0.0678 seconds |
./spec/unit/backup_encryption_spec.rb[1:2:1:2] | passed | 0.00836 seconds |
./spec/unit/backup_encryption_spec.rb[1:2:1:3] | passed | 0.00863 seconds |
./spec/unit/backup_encryption_spec.rb[1:2:2:1] | passed | 0.00101 seconds |
./spec/unit/backup_encryption_spec.rb[1:3:1:1] | passed | 0.0058 seconds |
./spec/unit/backup_encryption_spec.rb[1:3:1:2] | passed | 0.00739 seconds |
./spec/unit/backup_encryption_spec.rb[1:3:1:3] | passed | 0.00706 seconds |
./spec/unit/backup_encryption_spec.rb[1:3:2:1] | passed | 0.00177 seconds |
./spec/unit/backup_encryption_spec.rb[1:4:1:1] | passed | 0.00528 seconds |
./spec/unit/backup_encryption_spec.rb[1:4:1:2] | passed | 0.04324 seconds |
./spec/unit/backup_encryption_spec.rb[1:4:1:3] | passed | 0.04443 seconds |
./spec/unit/backup_encryption_spec.rb[1:4:2:1] | passed | 0.00081 seconds |
./spec/unit/backup_encryption_spec.rb[1:5:1:1] | passed | 0.04693 seconds |
./spec/unit/backup_encryption_spec.rb[1:5:2:1] | passed | 0.00543 seconds |
./spec/unit/backup_encryption_spec.rb[1:5:3:1] | passed | 0.0056 seconds |
./spec/unit/backup_encryption_spec.rb[1:6:1] | passed | 0.00104 seconds |
./spec/unit/backup_rotation_spec.rb[1:1:1] | passed | 0.00072 seconds |
./spec/unit/backup_rotation_spec.rb[1:1:2] | passed | 0.00056 seconds |
./spec/unit/backup_rotation_spec.rb[1:2:1:1] | passed | 0.00149 seconds |
./spec/unit/backup_rotation_spec.rb[1:2:1:2] | passed | 0.00151 seconds |
./spec/unit/backup_rotation_spec.rb[1:2:2:1] | passed | 0.00182 seconds |
./spec/unit/backup_rotation_spec.rb[1:2:2:2] | passed | 0.00202 seconds |
./spec/unit/backup_rotation_spec.rb[1:2:3:1] | passed | 0.00213 seconds |
./spec/unit/backup_rotation_spec.rb[1:2:4:1] | passed | 0.00553 seconds |
./spec/unit/backup_rotation_spec.rb[1:2:4:2] | passed | 0.00519 seconds |
./spec/unit/backup_rotation_spec.rb[1:3:1] | passed | 0.00282 seconds |
./spec/unit/backup_rotation_spec.rb[1:3:2] | passed | 0.00133 seconds |
./spec/unit/baktainer_spec.rb[1:1:1] | passed | 0.00138 seconds |
./spec/unit/baktainer_spec.rb[1:1:2] | passed | 0.00142 seconds |
./spec/unit/baktainer_spec.rb[1:1:3] | passed | 0.00135 seconds |
./spec/unit/baktainer_spec.rb[1:1:4] | passed | 0.26515 seconds |
./spec/unit/baktainer_spec.rb[1:1:5] | passed | 0.00123 seconds |
./spec/unit/baktainer_spec.rb[1:2:1] | passed | 0.00213 seconds |
./spec/unit/baktainer_spec.rb[1:2:2] | passed | 0.00345 seconds |
./spec/unit/baktainer_spec.rb[1:2:3] | passed | 0.00271 seconds |
./spec/unit/baktainer_spec.rb[1:3:1] | passed | 0.00177 seconds |
./spec/unit/baktainer_spec.rb[1:3:2] | passed | 0.00193 seconds |
./spec/unit/baktainer_spec.rb[1:3:3] | passed | 0.00191 seconds |
./spec/unit/baktainer_spec.rb[1:3:4] | passed | 0.00255 seconds |
./spec/unit/baktainer_spec.rb[1:4:1:1] | passed | 0.00216 seconds |
./spec/unit/baktainer_spec.rb[1:4:2:1] | passed | 0.35042 seconds |
./spec/unit/container_spec.rb[1:1:1] | passed | 0.00112 seconds |
./spec/unit/container_spec.rb[1:2:1] | passed | 0.00086 seconds |
./spec/unit/container_spec.rb[1:2:2] | passed | 0.00088 seconds |
./spec/unit/container_spec.rb[1:3:1] | passed | 0.00091 seconds |
./spec/unit/container_spec.rb[1:3:2] | passed | 0.00097 seconds |
./spec/unit/container_spec.rb[1:4:1] | passed | 0.00088 seconds |
./spec/unit/container_spec.rb[1:5:1] | passed | 0.00088 seconds |
./spec/unit/container_spec.rb[1:5:2] | passed | 0.00094 seconds |
./spec/unit/container_spec.rb[1:6:1] | passed | 0.0009 seconds |
./spec/unit/backup_command_spec.rb[1:8:5:3] | passed | 0.00031 seconds |
./spec/unit/backup_command_spec.rb[1:8:5:4] | passed | 0.00031 seconds |
./spec/unit/backup_command_spec.rb[1:8:5:5] | passed | 0.00037 seconds |
./spec/unit/backup_encryption_spec.rb[1:1:1] | passed | 0.00082 seconds |
./spec/unit/backup_encryption_spec.rb[1:1:2:1] | passed | 0.00073 seconds |
./spec/unit/backup_encryption_spec.rb[1:2:1:1] | passed | 0.00636 seconds |
./spec/unit/backup_encryption_spec.rb[1:2:1:2] | passed | 0.06349 seconds |
./spec/unit/backup_encryption_spec.rb[1:2:1:3] | passed | 0.00542 seconds |
./spec/unit/backup_encryption_spec.rb[1:2:2:1] | passed | 0.00107 seconds |
./spec/unit/backup_encryption_spec.rb[1:3:1:1] | passed | 0.00398 seconds |
./spec/unit/backup_encryption_spec.rb[1:3:1:2] | passed | 0.00371 seconds |
./spec/unit/backup_encryption_spec.rb[1:3:1:3] | passed | 0.00386 seconds |
./spec/unit/backup_encryption_spec.rb[1:3:2:1] | passed | 0.00094 seconds |
./spec/unit/backup_encryption_spec.rb[1:4:1:1] | passed | 0.00395 seconds |
./spec/unit/backup_encryption_spec.rb[1:4:1:2] | passed | 0.04289 seconds |
./spec/unit/backup_encryption_spec.rb[1:4:1:3] | passed | 0.04335 seconds |
./spec/unit/backup_encryption_spec.rb[1:4:2:1] | passed | 0.00093 seconds |
./spec/unit/backup_encryption_spec.rb[1:5:1:1] | passed | 0.04249 seconds |
./spec/unit/backup_encryption_spec.rb[1:5:2:1] | passed | 0.00399 seconds |
./spec/unit/backup_encryption_spec.rb[1:5:3:1] | passed | 0.00405 seconds |
./spec/unit/backup_encryption_spec.rb[1:6:1] | passed | 0.00082 seconds |
./spec/unit/backup_rotation_spec.rb[1:1:1] | passed | 0.00074 seconds |
./spec/unit/backup_rotation_spec.rb[1:1:2] | passed | 0.00062 seconds |
./spec/unit/backup_rotation_spec.rb[1:2:1:1] | passed | 0.00314 seconds |
./spec/unit/backup_rotation_spec.rb[1:2:1:2] | passed | 0.00351 seconds |
./spec/unit/backup_rotation_spec.rb[1:2:2:1] | passed | 0.00173 seconds |
./spec/unit/backup_rotation_spec.rb[1:2:2:2] | passed | 0.00196 seconds |
./spec/unit/backup_rotation_spec.rb[1:2:3:1] | passed | 0.00195 seconds |
./spec/unit/backup_rotation_spec.rb[1:2:4:1] | passed | 0.00709 seconds |
./spec/unit/backup_rotation_spec.rb[1:2:4:2] | passed | 0.00749 seconds |
./spec/unit/backup_rotation_spec.rb[1:3:1] | passed | 0.00362 seconds |
./spec/unit/backup_rotation_spec.rb[1:3:2] | passed | 0.00145 seconds |
./spec/unit/baktainer_spec.rb[1:1:1] | passed | 0.00158 seconds |
./spec/unit/baktainer_spec.rb[1:1:2] | passed | 0.00281 seconds |
./spec/unit/baktainer_spec.rb[1:1:3] | passed | 0.0019 seconds |
./spec/unit/baktainer_spec.rb[1:1:4] | passed | 0.15162 seconds |
./spec/unit/baktainer_spec.rb[1:1:5] | passed | 0.00152 seconds |
./spec/unit/baktainer_spec.rb[1:2:1] | passed | 0.0026 seconds |
./spec/unit/baktainer_spec.rb[1:2:2] | passed | 0.00234 seconds |
./spec/unit/baktainer_spec.rb[1:2:3] | passed | 0.00303 seconds |
./spec/unit/baktainer_spec.rb[1:3:1] | passed | 0.0022 seconds |
./spec/unit/baktainer_spec.rb[1:3:2] | passed | 0.00217 seconds |
./spec/unit/baktainer_spec.rb[1:3:3] | passed | 0.00234 seconds |
./spec/unit/baktainer_spec.rb[1:3:4] | passed | 0.0036 seconds |
./spec/unit/baktainer_spec.rb[1:4:1:1] | passed | 0.00313 seconds |
./spec/unit/baktainer_spec.rb[1:4:2:1] | passed | 0.26206 seconds |
./spec/unit/container_spec.rb[1:1:1] | passed | 0.00105 seconds |
./spec/unit/container_spec.rb[1:2:1] | passed | 0.00156 seconds |
./spec/unit/container_spec.rb[1:2:2] | passed | 0.0011 seconds |
./spec/unit/container_spec.rb[1:3:1] | passed | 0.00105 seconds |
./spec/unit/container_spec.rb[1:3:2] | passed | 0.00122 seconds |
./spec/unit/container_spec.rb[1:4:1] | passed | 0.0011 seconds |
./spec/unit/container_spec.rb[1:5:1] | passed | 0.00105 seconds |
./spec/unit/container_spec.rb[1:5:2] | passed | 0.00113 seconds |
./spec/unit/container_spec.rb[1:6:1] | passed | 0.0014 seconds |
./spec/unit/container_spec.rb[1:7:1] | passed | 0.00102 seconds |
./spec/unit/container_spec.rb[1:8:1] | passed | 0.00142 seconds |
./spec/unit/container_spec.rb[1:9:1:1] | passed | 0.00101 seconds |
./spec/unit/container_spec.rb[1:9:2:1] | passed | 0.00097 seconds |
./spec/unit/container_spec.rb[1:9:3:1] | passed | 0.0008 seconds |
./spec/unit/container_spec.rb[1:9:4:1] | passed | 0.00132 seconds |
./spec/unit/container_spec.rb[1:9:5:1] | passed | 0.00163 seconds |
./spec/unit/container_spec.rb[1:9:6:1] | passed | 0.00138 seconds |
./spec/unit/container_spec.rb[1:10:1] | passed | 0.00183 seconds |
./spec/unit/container_spec.rb[1:10:2] | passed | 0.00127 seconds |
./spec/unit/container_spec.rb[1:10:3] | passed | 0.00606 seconds |
./spec/unit/container_spec.rb[1:11:1] | passed | 0.00107 seconds |
./spec/unit/container_spec.rb[1:11:2] | passed | 0.00147 seconds |
./spec/unit/container_spec.rb[1:11:3] | passed | 0.00129 seconds |
./spec/unit/label_validator_spec.rb[1:1:1:1] | passed | 0.00039 seconds |
./spec/unit/label_validator_spec.rb[1:1:1:2] | passed | 0.00036 seconds |
./spec/unit/label_validator_spec.rb[1:1:2:1] | passed | 0.00035 seconds |
./spec/unit/label_validator_spec.rb[1:1:3:1] | passed | 0.00042 seconds |
./spec/unit/label_validator_spec.rb[1:1:4:1] | passed | 0.00039 seconds |
./spec/unit/label_validator_spec.rb[1:1:5:1] | passed | 0.00044 seconds |
./spec/unit/label_validator_spec.rb[1:1:6:1] | passed | 0.00134 seconds |
./spec/unit/label_validator_spec.rb[1:2:1] | passed | 0.0022 seconds |
./spec/unit/label_validator_spec.rb[1:2:2] | passed | 0.00105 seconds |
./spec/unit/label_validator_spec.rb[1:3:1] | passed | 0.00068 seconds |
./spec/unit/label_validator_spec.rb[1:3:2] | passed | 0.00117 seconds |
./spec/unit/label_validator_spec.rb[1:4:1] | passed | 0.00032 seconds |
./spec/unit/label_validator_spec.rb[1:4:2] | passed | 0.00032 seconds |
./spec/unit/notification_system_spec.rb[1:1:1:1] | passed | 0.00106 seconds |
./spec/unit/notification_system_spec.rb[1:1:2:1] | passed | 0.00358 seconds |
./spec/unit/notification_system_spec.rb[1:2:1] | passed | 0.03763 seconds |
./spec/unit/notification_system_spec.rb[1:3:1] | passed | 0.00117 seconds |
./spec/unit/notification_system_spec.rb[1:4:1] | passed | 0.00228 seconds |
./spec/unit/notification_system_spec.rb[1:5:1] | passed | 0.00097 seconds |
./spec/unit/notification_system_spec.rb[1:6:1] | passed | 0.00058 seconds |
./spec/unit/notification_system_spec.rb[1:6:2] | passed | 0.00062 seconds |
./spec/unit/container_spec.rb[1:8:1] | passed | 0.00108 seconds |
./spec/unit/container_spec.rb[1:9:1:1] | passed | 0.00116 seconds |
./spec/unit/container_spec.rb[1:9:2:1] | passed | 0.00118 seconds |
./spec/unit/container_spec.rb[1:9:3:1] | passed | 0.00098 seconds |
./spec/unit/container_spec.rb[1:9:4:1] | passed | 0.00149 seconds |
./spec/unit/container_spec.rb[1:9:5:1] | passed | 0.00147 seconds |
./spec/unit/container_spec.rb[1:9:6:1] | passed | 0.00125 seconds |
./spec/unit/container_spec.rb[1:10:1] | passed | 0.0021 seconds |
./spec/unit/container_spec.rb[1:10:2] | passed | 0.00153 seconds |
./spec/unit/container_spec.rb[1:10:3] | passed | 0.0063 seconds |
./spec/unit/container_spec.rb[1:11:1] | passed | 0.00236 seconds |
./spec/unit/container_spec.rb[1:11:2] | passed | 0.0019 seconds |
./spec/unit/container_spec.rb[1:11:3] | passed | 0.00145 seconds |
./spec/unit/label_validator_spec.rb[1:1:1:1] | passed | 0.00045 seconds |
./spec/unit/label_validator_spec.rb[1:1:1:2] | passed | 0.0004 seconds |
./spec/unit/label_validator_spec.rb[1:1:2:1] | passed | 0.00045 seconds |
./spec/unit/label_validator_spec.rb[1:1:3:1] | passed | 0.00048 seconds |
./spec/unit/label_validator_spec.rb[1:1:4:1] | passed | 0.00045 seconds |
./spec/unit/label_validator_spec.rb[1:1:5:1] | passed | 0.00045 seconds |
./spec/unit/label_validator_spec.rb[1:1:6:1] | passed | 0.00046 seconds |
./spec/unit/label_validator_spec.rb[1:2:1] | passed | 0.00038 seconds |
./spec/unit/label_validator_spec.rb[1:2:2] | passed | 0.00035 seconds |
./spec/unit/label_validator_spec.rb[1:3:1] | passed | 0.00044 seconds |
./spec/unit/label_validator_spec.rb[1:3:2] | passed | 0.00045 seconds |
./spec/unit/label_validator_spec.rb[1:4:1] | passed | 0.00036 seconds |
./spec/unit/label_validator_spec.rb[1:4:2] | passed | 0.00038 seconds |
./spec/unit/notification_system_spec.rb[1:1:1:1] | passed | 0.00064 seconds |
./spec/unit/notification_system_spec.rb[1:1:2:1] | passed | 0.00066 seconds |
./spec/unit/notification_system_spec.rb[1:2:1] | passed | 0.03984 seconds |
./spec/unit/notification_system_spec.rb[1:3:1] | passed | 0.00123 seconds |
./spec/unit/notification_system_spec.rb[1:4:1] | passed | 0.00291 seconds |
./spec/unit/notification_system_spec.rb[1:5:1] | passed | 0.00172 seconds |
./spec/unit/notification_system_spec.rb[1:6:1] | passed | 0.00066 seconds |
./spec/unit/notification_system_spec.rb[1:6:2] | passed | 0.00059 seconds |