diff options
author | Alessio Caiazza <acaiazza@gitlab.com> | 2019-05-02 19:04:15 +0300 |
---|---|---|
committer | Andreas Brandl <abrandl@gitlab.com> | 2019-05-02 19:04:15 +0300 |
commit | d9b383cc3681c4ae6fe0dbef20a3d1089e48e139 (patch) | |
tree | 8c1a00a07faa120c6fbaacc389fa9266cdf306db /app | |
parent | 37606e666736c9686054ee5155e3d2d21eb1a0c9 (diff) |
Add packages_size to ProjectStatistics
This new field will allow to keep track of the storage used by the
packages features, it provides also aggregation at namespace level.
Diffstat (limited to 'app')
-rw-r--r-- | app/helpers/storage_helper.rb | 10 | ||||
-rw-r--r-- | app/models/namespace.rb | 3 | ||||
-rw-r--r-- | app/models/project_statistics.rb | 9 | ||||
-rw-r--r-- | app/views/admin/groups/show.html.haml | 10 | ||||
-rw-r--r-- | app/views/admin/projects/show.html.haml | 9 |
5 files changed, 25 insertions, 16 deletions
diff --git a/app/helpers/storage_helper.rb b/app/helpers/storage_helper.rb index be8761db562..15041bd5805 100644 --- a/app/helpers/storage_helper.rb +++ b/app/helpers/storage_helper.rb @@ -6,4 +6,14 @@ module StorageHelper number_to_human_size(size_in_bytes, delimiter: ',', precision: precision, significant: false) end + + def storage_counters_details(statistics) + counters = { + counter_repositories: storage_counter(statistics.repository_size), + counter_build_artifacts: storage_counter(statistics.build_artifacts_size), + counter_lfs_objects: storage_counter(statistics.lfs_objects_size) + } + + _("%{counter_repositories} repositories, %{counter_build_artifacts} build artifacts, %{counter_lfs_objects} LFS") % counters + end end diff --git a/app/models/namespace.rb b/app/models/namespace.rb index 168f6bedd63..7393ef4b05c 100644 --- a/app/models/namespace.rb +++ b/app/models/namespace.rb @@ -77,7 +77,8 @@ class Namespace < ApplicationRecord 'COALESCE(SUM(ps.storage_size), 0) AS storage_size', 'COALESCE(SUM(ps.repository_size), 0) AS repository_size', 'COALESCE(SUM(ps.lfs_objects_size), 0) AS lfs_objects_size', - 'COALESCE(SUM(ps.build_artifacts_size), 0) AS build_artifacts_size' + 'COALESCE(SUM(ps.build_artifacts_size), 0) AS build_artifacts_size', + 'COALESCE(SUM(ps.packages_size), 0) AS packages_size' ) end diff --git a/app/models/project_statistics.rb b/app/models/project_statistics.rb index c020e72908c..6fe8cb40d25 100644 --- a/app/models/project_statistics.rb +++ b/app/models/project_statistics.rb @@ -7,7 +7,7 @@ class ProjectStatistics < ApplicationRecord before_save :update_storage_size COLUMNS_TO_REFRESH = [:repository_size, :lfs_objects_size, :commit_count].freeze - INCREMENTABLE_COLUMNS = { build_artifacts_size: %i[storage_size] }.freeze + INCREMENTABLE_COLUMNS = { build_artifacts_size: %i[storage_size], packages_size: %i[storage_size] }.freeze def total_repository_size repository_size + lfs_objects_size @@ -36,8 +36,13 @@ class ProjectStatistics < ApplicationRecord self.lfs_objects_size = project.lfs_objects.sum(:size) end + # older migrations fail due to non-existent attribute without this + def packages_size + has_attribute?(:packages_size) ? super.to_i : 0 + end + def update_storage_size - self.storage_size = repository_size + lfs_objects_size + build_artifacts_size + self.storage_size = repository_size + lfs_objects_size + build_artifacts_size + packages_size end # Since this incremental update method does not call update_storage_size above, diff --git a/app/views/admin/groups/show.html.haml b/app/views/admin/groups/show.html.haml index 00d255846f9..f524d35d79e 100644 --- a/app/views/admin/groups/show.html.haml +++ b/app/views/admin/groups/show.html.haml @@ -44,12 +44,10 @@ %li %span.light= _('Storage:') - - counter_storage = storage_counter(@group.storage_size) - - counter_repositories = storage_counter(@group.repository_size) - - counter_build_artifacts = storage_counter(@group.build_artifacts_size) - - counter_lfs_objects = storage_counter(@group.lfs_objects_size) - %strong - = _("%{counter_storage} (%{counter_repositories} repositories, %{counter_build_artifacts} build artifacts, %{counter_lfs_objects} LFS)") % { counter_storage: counter_storage, counter_repositories: counter_repositories, counter_build_artifacts: counter_build_artifacts, counter_lfs_objects: counter_lfs_objects } + %strong= storage_counter(@group.storage_size) + ( + = storage_counters_details(@group) + ) %li %span.light= _('Group Git LFS status:') diff --git a/app/views/admin/projects/show.html.haml b/app/views/admin/projects/show.html.haml index 03cce4745aa..bc34af88928 100644 --- a/app/views/admin/projects/show.html.haml +++ b/app/views/admin/projects/show.html.haml @@ -73,15 +73,10 @@ = @project.repository.relative_path %li - %span.light Storage used: + %span.light= _('Storage:') %strong= storage_counter(@project.statistics.storage_size) ( - = storage_counter(@project.statistics.repository_size) - repository, - = storage_counter(@project.statistics.build_artifacts_size) - build artifacts, - = storage_counter(@project.statistics.lfs_objects_size) - LFS + = storage_counters_details(@project.statistics) ) %li |