Follow-up from "Add backend interface to look up for security training urls"

The following discussion from !81861 (merged) should be addressed:

  • @.luke started a discussion: (+1 comment)

    Suggestion (not blocking)

    I think we can move the remaining two reactive cache methods into this class also, as their values are procs so will execute in the context of the inheriting classes.

    When I apply this patch and run the specs, they pass:

    diff --git a/ee/app/finders/security/training_providers/base_url_finder.rb b/ee/app/finders/security/training_providers/base_url_finder.rb
    index 088eecbf3f7..28f21949325 100644
    --- a/ee/app/finders/security/training_providers/base_url_finder.rb
    +++ b/ee/app/finders/security/training_providers/base_url_finder.rb
    @@ -9,6 +9,8 @@ class BaseUrlFinder
           self.reactive_cache_refresh_interval = 1.minute
           self.reactive_cache_lifetime = 10.minutes
           self.reactive_cache_work_type = :external_dependency
    +      self.reactive_cache_key = ->(finder) { finder.full_url }
    +      self.reactive_cache_worker_finder = ->(id, *args) { from_cache(id) }
    
           def initialize(provider, identifier)
             @provider = provider
    diff --git a/ee/app/finders/security/training_providers/kontra_url_finder.rb b/ee/app/finders/security/training_providers/kontra_url_finder.rb
    index 85a50045a67..3aa9f8b5b6f 100644
    --- a/ee/app/finders/security/training_providers/kontra_url_finder.rb
    +++ b/ee/app/finders/security/training_providers/kontra_url_finder.rb
    @@ -3,9 +3,6 @@
     module Security
       module TrainingProviders
         class KontraUrlFinder < BaseUrlFinder
    -      self.reactive_cache_key = ->(finder) { finder.full_url }
    -      self.reactive_cache_worker_finder = ->(id, *args) { from_cache(id) }
    -
           def calculate_reactive_cache(full_url)
             bearer_token = "sbdMsxcgW2Xs75Q2uHc9FhUCZSEV3fSg" # To improve the authentication/integration https://gitlab.com/gitlab-org/gitlab/-/issues/354070
             response = Gitlab::HTTP.try_get(
    diff --git a/ee/app/finders/security/training_providers/secure_code_warrior_url_finder.rb b/ee/app/finders/security/training_providers/secure_code_warrior_url_finder.rb
    index 1f33e5a6867..96462d6119f 100644
    --- a/ee/app/finders/security/training_providers/secure_code_warrior_url_finder.rb
    +++ b/ee/app/finders/security/training_providers/secure_code_warrior_url_finder.rb
    @@ -3,9 +3,6 @@
     module Security
       module TrainingProviders
         class SecureCodeWarriorUrlFinder < BaseUrlFinder
    -      self.reactive_cache_key = ->(finder) { finder.full_url }
    -      self.reactive_cache_worker_finder = ->(id, *args) { from_cache(id) }
    -
           def calculate_reactive_cache(full_url)
             response = Gitlab::HTTP.try_get(full_url)
             { url: response.parsed_response["url"] } if response
Edited by Subashis Chakraborty