Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/services/groups')
-rw-r--r--app/services/groups/destroy_service.rb13
-rw-r--r--app/services/groups/import_export/export_service.rb20
-rw-r--r--app/services/groups/import_export/import_service.rb8
-rw-r--r--app/services/groups/transfer_service.rb17
-rw-r--r--app/services/groups/update_service.rb28
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