Class: Gitlab::GitalyClient::ObjectPoolService

Inherits:
Object
  • Object
show all
Includes:
WithFeatureFlagActors
Defined in:
lib/gitlab/gitaly_client/object_pool_service.rb

Instance Attribute Summary collapse

Attributes included from WithFeatureFlagActors

#repository_actor

Instance Method Summary collapse

Methods included from WithFeatureFlagActors

#gitaly_client_call, #gitaly_feature_flag_actors, #group_actor, #project_actor, #user_actor

Constructor Details

#initialize(object_pool) ⇒ ObjectPoolService

Returns a new instance of ObjectPoolService.



10
11
12
13
# File 'lib/gitlab/gitaly_client/object_pool_service.rb', line 10

def initialize(object_pool)
  @object_pool = object_pool.gitaly_object_pool
  @storage = object_pool.storage
end

Instance Attribute Details

#object_poolObject (readonly)

Returns the value of attribute object_pool.



8
9
10
# File 'lib/gitlab/gitaly_client/object_pool_service.rb', line 8

def object_pool
  @object_pool
end

#storageObject (readonly)

Returns the value of attribute storage.



8
9
10
# File 'lib/gitlab/gitaly_client/object_pool_service.rb', line 8

def storage
  @storage
end

Instance Method Details

#create(repository) ⇒ Object



15
16
17
18
19
20
21
22
23
24
# File 'lib/gitlab/gitaly_client/object_pool_service.rb', line 15

def create(repository)
  request = Gitaly::CreateObjectPoolRequest.new(
    object_pool: object_pool,
    origin: repository.gitaly_repository)

  GitalyClient.with_feature_flag_actors(**gitaly_feature_flag_actors(repository)) do
    GitalyClient.call(storage, :object_pool_service, :create_object_pool,
                      request, timeout: GitalyClient.medium_timeout)
  end
end

#deleteObject



26
27
28
29
30
31
# File 'lib/gitlab/gitaly_client/object_pool_service.rb', line 26

def delete
  request = Gitaly::DeleteObjectPoolRequest.new(object_pool: object_pool)

  GitalyClient.call(storage, :object_pool_service, :delete_object_pool,
                    request, timeout: GitalyClient.long_timeout)
end

#fetch(repository) ⇒ Object



45
46
47
48
49
50
51
52
53
54
55
# File 'lib/gitlab/gitaly_client/object_pool_service.rb', line 45

def fetch(repository)
  request = Gitaly::FetchIntoObjectPoolRequest.new(
    object_pool: object_pool,
    origin: repository.gitaly_repository
  )

  GitalyClient.with_feature_flag_actors(**gitaly_feature_flag_actors(repository)) do
    GitalyClient.call(storage, :object_pool_service, :fetch_into_object_pool,
                      request, timeout: GitalyClient.long_timeout)
  end
end


33
34
35
36
37
38
39
40
41
42
43
# File 'lib/gitlab/gitaly_client/object_pool_service.rb', line 33

def link_repository(repository)
  request = Gitaly::LinkRepositoryToObjectPoolRequest.new(
    object_pool: object_pool,
    repository: repository.gitaly_repository
  )

  GitalyClient.with_feature_flag_actors(**gitaly_feature_flag_actors(repository)) do
    GitalyClient.call(storage, :object_pool_service, :link_repository_to_object_pool,
                      request, timeout: GitalyClient.fast_timeout)
  end
end