summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStan Hu <stanhu@gmail.com>2019-02-03 05:52:55 -0800
committerStan Hu <stanhu@gmail.com>2019-02-03 06:12:05 -0800
commit4c1231accab556da202a6a7b3e54b3ca0734cefb (patch)
tree64f1ec71aff0a5d18abd996e6a9664c076162236
parent0cc5e956fcb9393829e537a20be8da89a275ec1d (diff)
downloadgitlab-ce-4c1231accab556da202a6a7b3e54b3ca0734cefb.tar.gz
Fix SSH Detect Host Keys not working
Due to a change in https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/24245, the Detect Host Key feature in the SSH mirroring stopped working. `SshHostKey#primary_key` was being used instead of the hard-coded `:id`. However, `SshHostKey#find_by` was expecting the symbolized `:id` rather than the string `id`, so it could never find the host key it was supposed to update. Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/56855
-rw-r--r--app/models/ssh_host_key.rb2
-rw-r--r--changelogs/unreleased/sh-fix-detect-host-keys.yml5
-rw-r--r--spec/models/ssh_host_key_spec.rb6
3 files changed, 12 insertions, 1 deletions
diff --git a/app/models/ssh_host_key.rb b/app/models/ssh_host_key.rb
index 99a0c54a26a..f318d32c71c 100644
--- a/app/models/ssh_host_key.rb
+++ b/app/models/ssh_host_key.rb
@@ -54,7 +54,7 @@ class SshHostKey
# Needed for reactive caching
def self.primary_key
- 'id'
+ :id
end
def id
diff --git a/changelogs/unreleased/sh-fix-detect-host-keys.yml b/changelogs/unreleased/sh-fix-detect-host-keys.yml
new file mode 100644
index 00000000000..993d7c35b18
--- /dev/null
+++ b/changelogs/unreleased/sh-fix-detect-host-keys.yml
@@ -0,0 +1,5 @@
+---
+title: Fix Detect Host Keys not working
+merge_request: 24884
+author:
+type: fixed
diff --git a/spec/models/ssh_host_key_spec.rb b/spec/models/ssh_host_key_spec.rb
index 75db43b3d56..23a94334172 100644
--- a/spec/models/ssh_host_key_spec.rb
+++ b/spec/models/ssh_host_key_spec.rb
@@ -50,6 +50,12 @@ describe SshHostKey do
subject(:ssh_host_key) { described_class.new(project: project, url: 'ssh://example.com:2222', compare_host_keys: compare_host_keys) }
+ describe '.primary_key' do
+ it 'returns a symbol' do
+ expect(described_class.primary_key).to eq(:id)
+ end
+ end
+
describe '#fingerprints', :use_clean_rails_memory_store_caching do
it 'returns an array of indexed fingerprints when the cache is filled' do
stub_reactive_cache(ssh_host_key, known_hosts: known_hosts)