diff --git a/app/models/manageiq/providers/embedded_automation_manager/configuration_script_source.rb b/app/models/manageiq/providers/embedded_automation_manager/configuration_script_source.rb index 02cd479e3c10..2b3da11487f7 100644 --- a/app/models/manageiq/providers/embedded_automation_manager/configuration_script_source.rb +++ b/app/models/manageiq/providers/embedded_automation_manager/configuration_script_source.rb @@ -49,7 +49,7 @@ def sync_and_notify end def git_repository - (super || (ensure_git_repository && super)).tap { |r| sync_git_repository(r) } + (super || (ensure_git_repository && super))&.tap { |r| sync_git_repository(r) } end def verify_ssl=(val) @@ -84,6 +84,8 @@ def sync end def checkout_git_repository(target_directory) + return if git_repository.nil? + git_repository.update_repo git_repository.checkout(scm_branch, target_directory) end @@ -91,6 +93,8 @@ def checkout_git_repository(target_directory) private def ensure_git_repository + return if scm_url.blank? + transaction do repo = GitRepository.create!(attrs_for_sync_git_repository) if new_record? @@ -106,6 +110,8 @@ def sync_git_repository(git_repository = nil) return unless name_changed? || scm_url_changed? || authentication_id_changed? || @verify_ssl_changed git_repository ||= self.git_repository + return if git_repository.nil? + git_repository.attributes = attrs_for_sync_git_repository end