From 4c1231accab556da202a6a7b3e54b3ca0734cefb Mon Sep 17 00:00:00 2001 From: Stan Hu Date: Sun, 3 Feb 2019 05:52:55 -0800 Subject: [PATCH] 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 --- app/models/ssh_host_key.rb | 2 +- changelogs/unreleased/sh-fix-detect-host-keys.yml | 5 +++++ spec/models/ssh_host_key_spec.rb | 6 ++++++ 3 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 changelogs/unreleased/sh-fix-detect-host-keys.yml 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) -- GitLab