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/graphql/resolvers/data_transfer_resolver.rb')
-rw-r--r--app/graphql/resolvers/data_transfer_resolver.rb57
1 files changed, 57 insertions, 0 deletions
diff --git a/app/graphql/resolvers/data_transfer_resolver.rb b/app/graphql/resolvers/data_transfer_resolver.rb
new file mode 100644
index 00000000000..1a240d2811f
--- /dev/null
+++ b/app/graphql/resolvers/data_transfer_resolver.rb
@@ -0,0 +1,57 @@
+# frozen_string_literal: true
+
+module Resolvers
+ class DataTransferResolver < BaseResolver
+ argument :from, Types::DateType,
+ description: 'Retain egress data for 1 year. Current month will increase dynamically as egress occurs.',
+ required: false
+ argument :to, Types::DateType,
+ description: 'End date for the data.',
+ required: false
+
+ type ::Types::DataTransfer::BaseType, null: false
+
+ def self.source
+ raise NotImplementedError
+ end
+
+ def self.project
+ Class.new(self) do
+ type Types::DataTransfer::ProjectDataTransferType, null: false
+
+ def self.source
+ "Project"
+ end
+ end
+ end
+
+ def self.group
+ Class.new(self) do
+ type Types::DataTransfer::GroupDataTransferType, null: false
+
+ def self.source
+ "Group"
+ end
+ end
+ end
+
+ def resolve(**_args)
+ return unless Feature.enabled?(:data_transfer_monitoring)
+
+ start_date = Date.new(2023, 0o1, 0o1)
+ date_for_index = ->(i) { (start_date + i.months).strftime('%Y-%m-%d') }
+
+ nodes = 0.upto(3).map do |i|
+ {
+ date: date_for_index.call(i),
+ repository_egress: 250_000,
+ artifacts_egress: 250_000,
+ packages_egress: 250_000,
+ registry_egress: 250_000
+ }
+ end
+
+ { egress_nodes: nodes }
+ end
+ end
+end