diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-08-18 08:17:02 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-08-18 08:17:02 +0000 |
commit | b39512ed755239198a9c294b6a45e65c05900235 (patch) | |
tree | d234a3efade1de67c46b9e5a38ce813627726aa7 /app/services/groups | |
parent | d31474cf3b17ece37939d20082b07f6657cc79a9 (diff) | |
download | gitlab-ce-b39512ed755239198a9c294b6a45e65c05900235.tar.gz |
Add latest changes from gitlab-org/gitlab@15-3-stable-eev15.3.0-rc42
Diffstat (limited to 'app/services/groups')
-rw-r--r-- | app/services/groups/destroy_service.rb | 13 | ||||
-rw-r--r-- | app/services/groups/import_export/export_service.rb | 20 | ||||
-rw-r--r-- | app/services/groups/import_export/import_service.rb | 8 | ||||
-rw-r--r-- | app/services/groups/transfer_service.rb | 17 | ||||
-rw-r--r-- | app/services/groups/update_service.rb | 28 |
5 files changed, 73 insertions, 13 deletions
diff --git a/app/services/groups/destroy_service.rb b/app/services/groups/destroy_service.rb index bcf3110ca21..02a760ccf29 100644 --- a/app/services/groups/destroy_service.rb +++ b/app/services/groups/destroy_service.rb @@ -45,6 +45,8 @@ module Groups .execute(blocking: true) end + publish_event + group end # rubocop: enable CodeReuse/ActiveRecord @@ -91,6 +93,17 @@ module Groups end end # rubocop:enable CodeReuse/ActiveRecord + + def publish_event + event = Groups::GroupDeletedEvent.new( + data: { + group_id: group.id, + root_namespace_id: group.root_ancestor.id + } + ) + + Gitlab::EventStore.publish(event) + end end end diff --git a/app/services/groups/import_export/export_service.rb b/app/services/groups/import_export/export_service.rb index 2bfd5a5ebab..bd54b48c5f4 100644 --- a/app/services/groups/import_export/export_service.rb +++ b/app/services/groups/import_export/export_service.rb @@ -49,13 +49,23 @@ module Groups # We cannot include the file_saver with the other savers because # it removes the tmp dir. This means that if we want to add new savers # in EE the data won't be available. - if savers.all?(&:save) && file_saver.save + if save_exporters && file_saver.save notify_success else notify_error! end end + def save_exporters + log_info('Group export started') + + savers.all? do |exporter| + log_info("#{exporter.class.name} saver started") + + exporter.save + end + end + def savers [version_saver, tree_exporter] end @@ -99,12 +109,16 @@ module Groups raise Gitlab::ImportExport::Error, shared.errors.to_sentence end - def notify_success + def log_info(message) @logger.info( - message: 'Group Export succeeded', + message: message, group_id: group.id, group_name: group.name ) + end + + def notify_success + log_info('Group Export succeeded') notification_service.group_was_exported(group, current_user) end diff --git a/app/services/groups/import_export/import_service.rb b/app/services/groups/import_export/import_service.rb index f026f1698a9..db52a272bf2 100644 --- a/app/services/groups/import_export/import_service.rb +++ b/app/services/groups/import_export/import_service.rb @@ -97,17 +97,17 @@ module Groups def notify_success @logger.info( - group_id: group.id, + group_id: group.id, group_name: group.name, - message: 'Group Import/Export: Import succeeded' + message: 'Group Import/Export: Import succeeded' ) end def notify_error @logger.error( - group_id: group.id, + group_id: group.id, group_name: group.name, - message: "Group Import/Export: Errors occurred, see '#{Gitlab::ErrorTracking::Logger.file_name}' for details" + message: "Group Import/Export: Errors occurred, see '#{Gitlab::ErrorTracking::Logger.file_name}' for details" ) end diff --git a/app/services/groups/transfer_service.rb b/app/services/groups/transfer_service.rb index 29e3a9473ab..6fbf7daeb81 100644 --- a/app/services/groups/transfer_service.rb +++ b/app/services/groups/transfer_service.rb @@ -36,7 +36,7 @@ module Groups update_crm_objects(was_root_group) end - post_update_hooks(@updated_project_ids) + post_update_hooks(@updated_project_ids, old_root_ancestor_id) propagate_integrations update_pending_builds @@ -44,9 +44,10 @@ module Groups end # Overridden in EE - def post_update_hooks(updated_project_ids) + def post_update_hooks(updated_project_ids, old_root_ancestor_id) refresh_project_authorizations refresh_descendant_groups if @new_parent_group + publish_event(old_root_ancestor_id) end def ensure_allowed_transfer @@ -266,6 +267,18 @@ module Groups CustomerRelations::IssueContact.delete_for_group(@group) end + + def publish_event(old_root_ancestor_id) + event = ::Groups::GroupTransferedEvent.new( + data: { + group_id: group.id, + old_root_namespace_id: old_root_ancestor_id, + new_root_namespace_id: group.root_ancestor.id + } + ) + + Gitlab::EventStore.publish(event) + end end end diff --git a/app/services/groups/update_service.rb b/app/services/groups/update_service.rb index b3b0397eac3..2135892a95a 100644 --- a/app/services/groups/update_service.rb +++ b/app/services/groups/update_service.rb @@ -61,15 +61,18 @@ module Groups end def before_assignment_hook(group, params) - # overridden in EE + @full_path_before = group.full_path + @path_before = group.path end def renaming_group_with_container_registry_images? + renaming? && group.has_container_repository_including_subgroups? + end + + def renaming? new_path = params[:path] - new_path && - new_path != group.path && - group.has_container_repository_including_subgroups? + new_path && new_path != @path_before end def container_images_error @@ -83,6 +86,8 @@ module Groups end update_two_factor_requirement_for_subgroups + + publish_event end def update_two_factor_requirement_for_subgroups @@ -154,6 +159,21 @@ module Groups group.errors.add(:update_shared_runners, result[:message]) false end + + def publish_event + return unless renaming? + + event = Groups::GroupPathChangedEvent.new( + data: { + group_id: group.id, + root_namespace_id: group.root_ancestor.id, + old_path: @full_path_before, + new_path: group.full_path + } + ) + + Gitlab::EventStore.publish(event) + end end end |