Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
f4eb9901
Commit
f4eb9901
authored
Mar 23, 2018
by
Jacob Vosmaer (GitLab)
Committed by
Sean McGivern
Mar 23, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Route path lookups through legacy_disk_path (EE version)
parent
2e39235a
Changes
52
Hide whitespace changes
Inline
Side-by-side
Showing
52 changed files
with
148 additions
and
95 deletions
+148
-95
app/helpers/application_settings_helper.rb
app/helpers/application_settings_helper.rb
+1
-1
app/models/project.rb
app/models/project.rb
+1
-1
config/initializers/1_settings.rb
config/initializers/1_settings.rb
+2
-7
config/initializers/6_validations.rb
config/initializers/6_validations.rb
+3
-3
db/migrate/20161124141322_migrate_process_commit_worker_jobs.rb
...rate/20161124141322_migrate_process_commit_worker_jobs.rb
+1
-1
db/migrate/20161220141214_remove_dot_git_from_group_names.rb
db/migrate/20161220141214_remove_dot_git_from_group_names.rb
+1
-1
db/migrate/20161226122833_remove_dot_git_from_usernames.rb
db/migrate/20161226122833_remove_dot_git_from_usernames.rb
+2
-2
ee/app/models/geo/deleted_project.rb
ee/app/models/geo/deleted_project.rb
+1
-1
ee/app/models/storage_shard.rb
ee/app/models/storage_shard.rb
+1
-1
ee/lib/gitlab/git/checksum.rb
ee/lib/gitlab/git/checksum.rb
+1
-1
ee/spec/models/geo/deleted_project_spec.rb
ee/spec/models/geo/deleted_project_spec.rb
+1
-1
ee/spec/models/storage_shard_spec.rb
ee/spec/models/storage_shard_spec.rb
+1
-1
ee/spec/services/projects/update_repository_storage_service_spec.rb
...rvices/projects/update_repository_storage_service_spec.rb
+3
-3
lib/backup/repository.rb
lib/backup/repository.rb
+2
-2
lib/gitlab/database/rename_reserved_paths_migration/v1/migration_classes.rb
...e/rename_reserved_paths_migration/v1/migration_classes.rb
+1
-1
lib/gitlab/git/gitlab_projects.rb
lib/gitlab/git/gitlab_projects.rb
+1
-1
lib/gitlab/git/repository.rb
lib/gitlab/git/repository.rb
+1
-1
lib/gitlab/git/storage/checker.rb
lib/gitlab/git/storage/checker.rb
+1
-1
lib/gitlab/git/storage/circuit_breaker.rb
lib/gitlab/git/storage/circuit_breaker.rb
+1
-1
lib/gitlab/gitaly_client/storage_settings.rb
lib/gitlab/gitaly_client/storage_settings.rb
+35
-0
lib/gitlab/health_checks/fs_shards_check.rb
lib/gitlab/health_checks/fs_shards_check.rb
+1
-1
lib/gitlab/repo_path.rb
lib/gitlab/repo_path.rb
+2
-2
lib/gitlab/setup_helper.rb
lib/gitlab/setup_helper.rb
+1
-1
lib/gitlab/shell.rb
lib/gitlab/shell.rb
+3
-3
lib/gitlab/task_helpers.rb
lib/gitlab/task_helpers.rb
+2
-2
lib/system_check/orphans/namespace_check.rb
lib/system_check/orphans/namespace_check.rb
+2
-2
lib/system_check/orphans/repository_check.rb
lib/system_check/orphans/repository_check.rb
+4
-2
lib/tasks/gitlab/check.rake
lib/tasks/gitlab/check.rake
+4
-4
lib/tasks/gitlab/cleanup.rake
lib/tasks/gitlab/cleanup.rake
+3
-3
lib/tasks/gitlab/info.rake
lib/tasks/gitlab/info.rake
+1
-1
spec/initializers/6_validations_spec.rb
spec/initializers/6_validations_spec.rb
+8
-8
spec/initializers/settings_spec.rb
spec/initializers/settings_spec.rb
+1
-1
spec/lib/backup/repository_spec.rb
spec/lib/backup/repository_spec.rb
+1
-1
spec/lib/gitlab/bare_repository_import/repository_spec.rb
spec/lib/gitlab/bare_repository_import/repository_spec.rb
+1
-1
spec/lib/gitlab/health_checks/fs_shards_check_spec.rb
spec/lib/gitlab/health_checks/fs_shards_check_spec.rb
+3
-3
spec/lib/gitlab/repo_path_spec.rb
spec/lib/gitlab/repo_path_spec.rb
+2
-2
spec/lib/gitlab/shell_spec.rb
spec/lib/gitlab/shell_spec.rb
+2
-2
spec/migrations/remove_dot_git_from_usernames_spec.rb
spec/migrations/remove_dot_git_from_usernames_spec.rb
+3
-1
spec/models/namespace_spec.rb
spec/models/namespace_spec.rb
+1
-1
spec/models/project_spec.rb
spec/models/project_spec.rb
+2
-2
spec/services/projects/create_service_spec.rb
spec/services/projects/create_service_spec.rb
+1
-1
spec/services/projects/fork_service_spec.rb
spec/services/projects/fork_service_spec.rb
+1
-1
spec/services/projects/transfer_service_spec.rb
spec/services/projects/transfer_service_spec.rb
+1
-1
spec/services/projects/update_service_spec.rb
spec/services/projects/update_service_spec.rb
+1
-1
spec/support/stored_repositories.rb
spec/support/stored_repositories.rb
+1
-1
spec/support/stub_configuration.rb
spec/support/stub_configuration.rb
+6
-2
spec/support/test_env.rb
spec/support/test_env.rb
+1
-1
spec/tasks/gitlab/backup_rake_spec.rb
spec/tasks/gitlab/backup_rake_spec.rb
+12
-3
spec/tasks/gitlab/cleanup_rake_spec.rb
spec/tasks/gitlab/cleanup_rake_spec.rb
+5
-2
spec/tasks/gitlab/git_rake_spec.rb
spec/tasks/gitlab/git_rake_spec.rb
+5
-2
spec/tasks/gitlab/gitaly_rake_spec.rb
spec/tasks/gitlab/gitaly_rake_spec.rb
+5
-5
spec/tasks/gitlab/shell_rake_spec.rb
spec/tasks/gitlab/shell_rake_spec.rb
+1
-1
No files found.
app/helpers/application_settings_helper.rb
View file @
f4eb9901
...
@@ -97,7 +97,7 @@ module ApplicationSettingsHelper
...
@@ -97,7 +97,7 @@ module ApplicationSettingsHelper
def
repository_storages_options_for_select
(
selected
)
def
repository_storages_options_for_select
(
selected
)
options
=
Gitlab
.
config
.
repositories
.
storages
.
map
do
|
name
,
storage
|
options
=
Gitlab
.
config
.
repositories
.
storages
.
map
do
|
name
,
storage
|
[
"
#{
name
}
-
#{
storage
[
'path'
]
}
"
,
name
]
[
"
#{
name
}
-
#{
storage
.
legacy_disk_path
}
"
,
name
]
end
end
options_for_select
(
options
,
selected
)
options_for_select
(
options
,
selected
)
...
...
app/models/project.rb
View file @
f4eb9901
...
@@ -514,7 +514,7 @@ class Project < ActiveRecord::Base
...
@@ -514,7 +514,7 @@ class Project < ActiveRecord::Base
end
end
def
repository_storage_path
def
repository_storage_path
Gitlab
.
config
.
repositories
.
storages
[
repository_storage
]
.
try
(
:[]
,
'path'
)
Gitlab
.
config
.
repositories
.
storages
[
repository_storage
]
&
.
legacy_disk_path
end
end
def
team
def
team
...
...
config/initializers/1_settings.rb
View file @
f4eb9901
...
@@ -567,12 +567,7 @@ unless Settings.repositories.storages['default']
...
@@ -567,12 +567,7 @@ unless Settings.repositories.storages['default']
end
end
Settings
.
repositories
.
storages
.
each
do
|
key
,
storage
|
Settings
.
repositories
.
storages
.
each
do
|
key
,
storage
|
storage
=
Settingslogic
.
new
(
storage
)
Settings
.
repositories
.
storages
[
key
]
=
Gitlab
::
GitalyClient
::
StorageSettings
.
new
(
storage
)
# Expand relative paths
storage
[
'path'
]
=
Settings
.
absolute
(
storage
[
'path'
])
Settings
.
repositories
.
storages
[
key
]
=
storage
end
end
#
#
...
@@ -586,7 +581,7 @@ repositories_storages = Settings.repositories.storages.values
...
@@ -586,7 +581,7 @@ repositories_storages = Settings.repositories.storages.values
repository_downloads_path
=
Settings
.
gitlab
[
'repository_downloads_path'
].
to_s
.
gsub
(
%r{/$}
,
''
)
repository_downloads_path
=
Settings
.
gitlab
[
'repository_downloads_path'
].
to_s
.
gsub
(
%r{/$}
,
''
)
repository_downloads_full_path
=
File
.
expand_path
(
repository_downloads_path
,
Settings
.
gitlab
[
'user_home'
])
repository_downloads_full_path
=
File
.
expand_path
(
repository_downloads_path
,
Settings
.
gitlab
[
'user_home'
])
if
repository_downloads_path
.
blank?
||
repositories_storages
.
any?
{
|
rs
|
[
repository_downloads_path
,
repository_downloads_full_path
].
include?
(
rs
[
'path'
]
.
gsub
(
%r{/$}
,
''
))
}
if
repository_downloads_path
.
blank?
||
repositories_storages
.
any?
{
|
rs
|
[
repository_downloads_path
,
repository_downloads_full_path
].
include?
(
rs
.
legacy_disk_path
.
gsub
(
%r{/$}
,
''
))
}
Settings
.
gitlab
[
'repository_downloads_path'
]
=
File
.
join
(
Settings
.
shared
[
'path'
],
'cache/archive'
)
Settings
.
gitlab
[
'repository_downloads_path'
]
=
File
.
join
(
Settings
.
shared
[
'path'
],
'cache/archive'
)
end
end
...
...
config/initializers/6_validations.rb
View file @
f4eb9901
...
@@ -5,7 +5,7 @@ end
...
@@ -5,7 +5,7 @@ end
def
find_parent_path
(
name
,
path
)
def
find_parent_path
(
name
,
path
)
parent
=
Pathname
.
new
(
path
).
realpath
.
parent
parent
=
Pathname
.
new
(
path
).
realpath
.
parent
Gitlab
.
config
.
repositories
.
storages
.
detect
do
|
n
,
rs
|
Gitlab
.
config
.
repositories
.
storages
.
detect
do
|
n
,
rs
|
name
!=
n
&&
Pathname
.
new
(
rs
[
'path'
]
).
realpath
==
parent
name
!=
n
&&
Pathname
.
new
(
rs
.
legacy_disk_path
).
realpath
==
parent
end
end
rescue
Errno
::
EIO
,
Errno
::
ENOENT
=>
e
rescue
Errno
::
EIO
,
Errno
::
ENOENT
=>
e
warning
=
"WARNING: couldn't verify
#{
path
}
(
#{
name
}
). "
\
warning
=
"WARNING: couldn't verify
#{
path
}
(
#{
name
}
). "
\
...
@@ -33,7 +33,7 @@ def validate_storages_config
...
@@ -33,7 +33,7 @@ def validate_storages_config
"If you're using the Gitlab Development Kit, you can update your configuration running `gdk reconfigure`.
\n
"
"If you're using the Gitlab Development Kit, you can update your configuration running `gdk reconfigure`.
\n
"
end
end
if
!
repository_storage
.
is_a?
(
Hash
)
||
repository_storage
[
'path'
]
.
nil?
if
!
repository_storage
.
is_a?
(
Gitlab
::
GitalyClient
::
StorageSettings
)
||
repository_storage
.
legacy_disk_path
.
nil?
storage_validation_error
(
"
#{
name
}
is not a valid storage, because it has no `path` key. Refer to gitlab.yml.example for an updated example"
)
storage_validation_error
(
"
#{
name
}
is not a valid storage, because it has no `path` key. Refer to gitlab.yml.example for an updated example"
)
end
end
...
@@ -50,7 +50,7 @@ end
...
@@ -50,7 +50,7 @@ end
def
validate_storages_paths
def
validate_storages_paths
Gitlab
.
config
.
repositories
.
storages
.
each
do
|
name
,
repository_storage
|
Gitlab
.
config
.
repositories
.
storages
.
each
do
|
name
,
repository_storage
|
parent_name
,
_parent_path
=
find_parent_path
(
name
,
repository_storage
[
'path'
]
)
parent_name
,
_parent_path
=
find_parent_path
(
name
,
repository_storage
.
legacy_disk_path
)
if
parent_name
if
parent_name
storage_validation_error
(
"
#{
name
}
is a nested path of
#{
parent_name
}
. Nested paths are not supported for repository storages"
)
storage_validation_error
(
"
#{
name
}
is a nested path of
#{
parent_name
}
. Nested paths are not supported for repository storages"
)
end
end
...
...
db/migrate/20161124141322_migrate_process_commit_worker_jobs.rb
View file @
f4eb9901
...
@@ -12,7 +12,7 @@ class MigrateProcessCommitWorkerJobs < ActiveRecord::Migration
...
@@ -12,7 +12,7 @@ class MigrateProcessCommitWorkerJobs < ActiveRecord::Migration
end
end
def
repository_storage_path
def
repository_storage_path
Gitlab
.
config
.
repositories
.
storages
[
repository_storage
]
[
'path'
]
Gitlab
.
config
.
repositories
.
storages
[
repository_storage
]
.
legacy_disk_path
end
end
def
repository_path
def
repository_path
...
...
db/migrate/20161220141214_remove_dot_git_from_group_names.rb
View file @
f4eb9901
...
@@ -60,7 +60,7 @@ class RemoveDotGitFromGroupNames < ActiveRecord::Migration
...
@@ -60,7 +60,7 @@ class RemoveDotGitFromGroupNames < ActiveRecord::Migration
def
move_namespace
(
group_id
,
path_was
,
path
)
def
move_namespace
(
group_id
,
path_was
,
path
)
repository_storage_paths
=
select_all
(
"SELECT distinct(repository_storage) FROM projects WHERE namespace_id =
#{
group_id
}
"
).
map
do
|
row
|
repository_storage_paths
=
select_all
(
"SELECT distinct(repository_storage) FROM projects WHERE namespace_id =
#{
group_id
}
"
).
map
do
|
row
|
Gitlab
.
config
.
repositories
.
storages
[
row
[
'repository_storage'
]]
[
'path'
]
Gitlab
.
config
.
repositories
.
storages
[
row
[
'repository_storage'
]]
.
legacy_disk_path
end
.
compact
end
.
compact
# Move the namespace directory in all storages paths used by member projects
# Move the namespace directory in all storages paths used by member projects
...
...
db/migrate/20161226122833_remove_dot_git_from_usernames.rb
View file @
f4eb9901
...
@@ -71,7 +71,7 @@ class RemoveDotGitFromUsernames < ActiveRecord::Migration
...
@@ -71,7 +71,7 @@ class RemoveDotGitFromUsernames < ActiveRecord::Migration
route_exists
=
route_exists?
(
path
)
route_exists
=
route_exists?
(
path
)
Gitlab
.
config
.
repositories
.
storages
.
each_value
do
|
storage
|
Gitlab
.
config
.
repositories
.
storages
.
each_value
do
|
storage
|
if
route_exists
||
path_exists?
(
path
,
storage
[
'path'
]
)
if
route_exists
||
path_exists?
(
path
,
storage
.
legacy_disk_path
)
counter
+=
1
counter
+=
1
path
=
"
#{
base
}#{
counter
}
"
path
=
"
#{
base
}#{
counter
}
"
...
@@ -84,7 +84,7 @@ class RemoveDotGitFromUsernames < ActiveRecord::Migration
...
@@ -84,7 +84,7 @@ class RemoveDotGitFromUsernames < ActiveRecord::Migration
def
move_namespace
(
namespace_id
,
path_was
,
path
)
def
move_namespace
(
namespace_id
,
path_was
,
path
)
repository_storage_paths
=
select_all
(
"SELECT distinct(repository_storage) FROM projects WHERE namespace_id =
#{
namespace_id
}
"
).
map
do
|
row
|
repository_storage_paths
=
select_all
(
"SELECT distinct(repository_storage) FROM projects WHERE namespace_id =
#{
namespace_id
}
"
).
map
do
|
row
|
Gitlab
.
config
.
repositories
.
storages
[
row
[
'repository_storage'
]]
[
'path'
]
Gitlab
.
config
.
repositories
.
storages
[
row
[
'repository_storage'
]]
.
legacy_disk_path
end
.
compact
end
.
compact
# Move the namespace directory in all storages paths used by member projects
# Move the namespace directory in all storages paths used by member projects
...
...
ee/app/models/geo/deleted_project.rb
View file @
f4eb9901
...
@@ -19,7 +19,7 @@ class Geo::DeletedProject
...
@@ -19,7 +19,7 @@ class Geo::DeletedProject
end
end
def
repository_storage_path
def
repository_storage_path
Gitlab
.
config
.
repositories
.
storages
[
repository_storage
]
.
try
(
:[]
,
'path'
)
Gitlab
.
config
.
repositories
.
storages
[
repository_storage
]
&
.
legacy_disk_path
end
end
def
wiki
def
wiki
...
...
ee/app/models/storage_shard.rb
View file @
f4eb9901
...
@@ -17,7 +17,7 @@ class StorageShard
...
@@ -17,7 +17,7 @@ class StorageShard
# The key is the shard name, and the values are the parameters for that shard.
# The key is the shard name, and the values are the parameters for that shard.
def
self
.
all
def
self
.
all
Settings
.
repositories
.
storages
.
map
do
|
name
,
params
|
Settings
.
repositories
.
storages
.
map
do
|
name
,
params
|
config
=
params
.
symbolize_keys
.
merge
(
name:
name
)
config
=
params
.
symbolize_keys
.
merge
(
name:
name
,
path:
params
.
legacy_disk_path
)
config
.
slice!
(
*
allowed_params
)
config
.
slice!
(
*
allowed_params
)
StorageShard
.
new
(
config
)
StorageShard
.
new
(
config
)
end
end
...
...
ee/lib/gitlab/git/checksum.rb
View file @
f4eb9901
...
@@ -11,7 +11,7 @@ module Gitlab
...
@@ -11,7 +11,7 @@ module Gitlab
def
initialize
(
storage
,
relative_path
)
def
initialize
(
storage
,
relative_path
)
@storage
=
storage
@storage
=
storage
@storage_path
=
Gitlab
.
config
.
repositories
.
storages
[
storage
]
[
'path'
]
@storage_path
=
Gitlab
.
config
.
repositories
.
storages
[
storage
]
.
legacy_disk_path
@relative_path
=
"
#{
relative_path
}
.git"
@relative_path
=
"
#{
relative_path
}
.git"
@path
=
File
.
join
(
storage_path
,
@relative_path
)
@path
=
File
.
join
(
storage_path
,
@relative_path
)
end
end
...
...
ee/spec/models/geo/deleted_project_spec.rb
View file @
f4eb9901
...
@@ -47,7 +47,7 @@ RSpec.describe Geo::DeletedProject, type: :model do
...
@@ -47,7 +47,7 @@ RSpec.describe Geo::DeletedProject, type: :model do
describe
'#repository_storage_path'
do
describe
'#repository_storage_path'
do
it
'returns the repository storage path'
do
it
'returns the repository storage path'
do
expect
(
subject
.
repository_storage_path
).
to
eq
(
'tmp/tests/storage_foo'
)
expect
(
subject
.
repository_storage_path
).
to
eq
(
File
.
absolute_path
(
'tmp/tests/storage_foo'
)
)
end
end
end
end
...
...
ee/spec/models/storage_shard_spec.rb
View file @
f4eb9901
...
@@ -7,7 +7,7 @@ describe StorageShard do
...
@@ -7,7 +7,7 @@ describe StorageShard do
expect
(
shards
.
count
).
to
eq
(
Settings
.
repositories
.
storages
.
count
)
expect
(
shards
.
count
).
to
eq
(
Settings
.
repositories
.
storages
.
count
)
expect
(
shards
.
map
(
&
:name
)).
to
match_array
(
Settings
.
repositories
.
storages
.
keys
)
expect
(
shards
.
map
(
&
:name
)).
to
match_array
(
Settings
.
repositories
.
storages
.
keys
)
expect
(
shards
.
map
(
&
:path
)).
to
match_array
(
Settings
.
repositories
.
storages
.
values
.
map
(
&
:path
))
expect
(
shards
.
map
(
&
:path
)).
to
match_array
(
Settings
.
repositories
.
storages
.
values
.
map
(
&
:
legacy_disk_
path
))
end
end
end
end
end
end
ee/spec/services/projects/update_repository_storage_service_spec.rb
View file @
f4eb9901
...
@@ -35,7 +35,7 @@ describe Projects::UpdateRepositoryStorageService do
...
@@ -35,7 +35,7 @@ describe Projects::UpdateRepositoryStorageService do
.
with
(
project
.
repository
.
raw
).
and_return
(
true
)
.
with
(
project
.
repository
.
raw
).
and_return
(
true
)
expect
(
GitlabShellWorker
).
to
receive
(
:perform_async
)
expect
(
GitlabShellWorker
).
to
receive
(
:perform_async
)
.
with
(
:mv_repository
,
.
with
(
:mv_repository
,
'tmp/tests/storage_a'
,
File
.
absolute_path
(
'tmp/tests/storage_a'
)
,
project
.
disk_path
,
project
.
disk_path
,
"
#{
project
.
disk_path
}
+
#{
project
.
id
}
+moved+
#{
time
.
to_i
}
"
)
"
#{
project
.
disk_path
}
+
#{
project
.
id
}
+moved+
#{
time
.
to_i
}
"
)
...
@@ -88,7 +88,7 @@ describe Projects::UpdateRepositoryStorageService do
...
@@ -88,7 +88,7 @@ describe Projects::UpdateRepositoryStorageService do
.
with
(
project
.
repository
.
raw
).
and_return
(
true
)
.
with
(
project
.
repository
.
raw
).
and_return
(
true
)
expect
(
GitlabShellWorker
).
to
receive
(
:perform_async
)
expect
(
GitlabShellWorker
).
to
receive
(
:perform_async
)
.
with
(
:mv_repository
,
.
with
(
:mv_repository
,
'tmp/tests/storage_a'
,
File
.
absolute_path
(
'tmp/tests/storage_a'
)
,
project
.
disk_path
,
project
.
disk_path
,
"
#{
project
.
disk_path
}
+
#{
project
.
id
}
+moved+
#{
time
.
to_i
}
"
)
"
#{
project
.
disk_path
}
+
#{
project
.
id
}
+moved+
#{
time
.
to_i
}
"
)
...
@@ -96,7 +96,7 @@ describe Projects::UpdateRepositoryStorageService do
...
@@ -96,7 +96,7 @@ describe Projects::UpdateRepositoryStorageService do
.
with
(
project
.
wiki
.
repository
.
raw
).
and_return
(
true
)
.
with
(
project
.
wiki
.
repository
.
raw
).
and_return
(
true
)
expect
(
GitlabShellWorker
).
to
receive
(
:perform_async
)
expect
(
GitlabShellWorker
).
to
receive
(
:perform_async
)
.
with
(
:mv_repository
,
.
with
(
:mv_repository
,
'tmp/tests/storage_a'
,
File
.
absolute_path
(
'tmp/tests/storage_a'
)
,
project
.
wiki
.
disk_path
,
project
.
wiki
.
disk_path
,
"
#{
project
.
disk_path
}
+
#{
project
.
id
}
+moved+
#{
time
.
to_i
}
.wiki"
)
"
#{
project
.
disk_path
}
+
#{
project
.
id
}
+moved+
#{
time
.
to_i
}
.wiki"
)
...
...
lib/backup/repository.rb
View file @
f4eb9901
...
@@ -65,7 +65,7 @@ module Backup
...
@@ -65,7 +65,7 @@ module Backup
def
restore
def
restore
Gitlab
.
config
.
repositories
.
storages
.
each
do
|
name
,
repository_storage
|
Gitlab
.
config
.
repositories
.
storages
.
each
do
|
name
,
repository_storage
|
path
=
repository_storage
[
'path'
]
path
=
repository_storage
.
legacy_disk_path
next
unless
File
.
exist?
(
path
)
next
unless
File
.
exist?
(
path
)
# Move repos dir to 'repositories.old' dir
# Move repos dir to 'repositories.old' dir
...
@@ -200,7 +200,7 @@ module Backup
...
@@ -200,7 +200,7 @@ module Backup
end
end
def
repository_storage_paths_args
def
repository_storage_paths_args
Gitlab
.
config
.
repositories
.
storages
.
values
.
map
{
|
rs
|
rs
[
'path'
]
}
Gitlab
.
config
.
repositories
.
storages
.
values
.
map
{
|
rs
|
rs
.
legacy_disk_path
}
end
end
def
progress
def
progress
...
...
lib/gitlab/database/rename_reserved_paths_migration/v1/migration_classes.rb
View file @
f4eb9901
...
@@ -74,7 +74,7 @@ module Gitlab
...
@@ -74,7 +74,7 @@ module Gitlab
}.
freeze
}.
freeze
def
repository_storage_path
def
repository_storage_path
Gitlab
.
config
.
repositories
.
storages
[
repository_storage
]
[
'path'
]
Gitlab
.
config
.
repositories
.
storages
[
repository_storage
]
.
legacy_disk_path
end
end
# Overridden to have the correct `source_type` for the `route` relation
# Overridden to have the correct `source_type` for the `route` relation
...
...
lib/gitlab/git/gitlab_projects.rb
View file @
f4eb9901
...
@@ -222,7 +222,7 @@ module Gitlab
...
@@ -222,7 +222,7 @@ module Gitlab
end
end
def
shard_name_from_shard_path
(
shard_path
)
def
shard_name_from_shard_path
(
shard_path
)
Gitlab
.
config
.
repositories
.
storages
.
find
{
|
_
,
info
|
info
[
'path'
]
==
shard_path
}
&
.
first
||
Gitlab
.
config
.
repositories
.
storages
.
find
{
|
_
,
info
|
info
.
legacy_disk_path
==
shard_path
}
&
.
first
||
raise
(
ShardNameNotFoundError
,
"no shard found for path '
#{
shard_path
}
'"
)
raise
(
ShardNameNotFoundError
,
"no shard found for path '
#{
shard_path
}
'"
)
end
end
...
...
lib/gitlab/git/repository.rb
View file @
f4eb9901
...
@@ -93,7 +93,7 @@ module Gitlab
...
@@ -93,7 +93,7 @@ module Gitlab
@relative_path
=
relative_path
@relative_path
=
relative_path
@gl_repository
=
gl_repository
@gl_repository
=
gl_repository
storage_path
=
Gitlab
.
config
.
repositories
.
storages
[
@storage
]
[
'path'
]
storage_path
=
Gitlab
.
config
.
repositories
.
storages
[
@storage
]
.
legacy_disk_path
@gitlab_projects
=
Gitlab
::
Git
::
GitlabProjects
.
new
(
@gitlab_projects
=
Gitlab
::
Git
::
GitlabProjects
.
new
(
storage_path
,
storage_path
,
relative_path
,
relative_path
,
...
...
lib/gitlab/git/storage/checker.rb
View file @
f4eb9901
...
@@ -35,7 +35,7 @@ module Gitlab
...
@@ -35,7 +35,7 @@ module Gitlab
def
initialize
(
storage
,
logger
=
Rails
.
logger
)
def
initialize
(
storage
,
logger
=
Rails
.
logger
)
@storage
=
storage
@storage
=
storage
config
=
Gitlab
.
config
.
repositories
.
storages
[
@storage
]
config
=
Gitlab
.
config
.
repositories
.
storages
[
@storage
]
@storage_path
=
config
[
'path'
]
@storage_path
=
config
.
legacy_disk_path
@logger
=
logger
@logger
=
logger
@hostname
=
Gitlab
::
Environment
.
hostname
@hostname
=
Gitlab
::
Environment
.
hostname
...
...
lib/gitlab/git/storage/circuit_breaker.rb
View file @
f4eb9901
...
@@ -25,7 +25,7 @@ module Gitlab
...
@@ -25,7 +25,7 @@ module Gitlab
if
!
config
.
present?
if
!
config
.
present?
NullCircuitBreaker
.
new
(
storage
,
hostname
,
error:
Misconfiguration
.
new
(
"Storage '
#{
storage
}
' is not configured"
))
NullCircuitBreaker
.
new
(
storage
,
hostname
,
error:
Misconfiguration
.
new
(
"Storage '
#{
storage
}
' is not configured"
))
elsif
!
config
[
'path'
]
.
present?
elsif
!
config
.
legacy_disk_path
.
present?
NullCircuitBreaker
.
new
(
storage
,
hostname
,
error:
Misconfiguration
.
new
(
"Path for storage '
#{
storage
}
' is not configured"
))
NullCircuitBreaker
.
new
(
storage
,
hostname
,
error:
Misconfiguration
.
new
(
"Path for storage '
#{
storage
}
' is not configured"
))
else
else
new
(
storage
,
hostname
)
new
(
storage
,
hostname
)
...
...
lib/gitlab/gitaly_client/storage_settings.rb
0 → 100644
View file @
f4eb9901
module
Gitlab
module
GitalyClient
# This is a chokepoint that is meant to help us stop remove all places
# where production code (app, config, db, lib) touches Git repositories
# directly.
class
StorageSettings
DirectPathAccessError
=
Class
.
new
(
StandardError
)
# This class will give easily recognizable NoMethodErrors
Deprecated
=
Class
.
new
attr_reader
:legacy_disk_path
def
initialize
(
storage
)
raise
"expected a Hash, got a
#{
storage
.
class
.
name
}
"
unless
storage
.
is_a?
(
Hash
)
# Support a nil 'path' field because some of the circuit breaker tests use it.
@legacy_disk_path
=
File
.
expand_path
(
storage
[
'path'
],
Rails
.
root
)
if
storage
[
'path'
]
storage
[
'path'
]
=
Deprecated
@hash
=
storage
end
def
gitaly_address
@hash
.
fetch
(
:gitaly_address
)
end
private
def
method_missing
(
m
,
*
args
,
&
block
)
@hash
.
public_send
(
m
,
*
args
,
&
block
)
# rubocop:disable GitlabSecurity/PublicSend
end
end
end
end
lib/gitlab/health_checks/fs_shards_check.rb
View file @
f4eb9901
...
@@ -77,7 +77,7 @@ module Gitlab
...
@@ -77,7 +77,7 @@ module Gitlab
end
end
def
storage_path
(
storage_name
)
def
storage_path
(
storage_name
)
storages_paths
&
.
dig
(
storage_name
,
'path'
)
storages_paths
[
storage_name
]
&
.
legacy_disk_path
end
end
# All below test methods use shell commands to perform actions on storage volumes.
# All below test methods use shell commands to perform actions on storage volumes.
...
...
lib/gitlab/repo_path.rb
View file @
f4eb9901
...
@@ -21,11 +21,11 @@ module Gitlab
...
@@ -21,11 +21,11 @@ module Gitlab
result
=
repo_path
result
=
repo_path
storage
=
Gitlab
.
config
.
repositories
.
storages
.
values
.
find
do
|
params
|
storage
=
Gitlab
.
config
.
repositories
.
storages
.
values
.
find
do
|
params
|
repo_path
.
start_with?
(
params
[
'path'
]
)
repo_path
.
start_with?
(
params
.
legacy_disk_path
)
end
end
if
storage
if
storage
result
=
result
.
sub
(
storage
[
'path'
]
,
''
)
result
=
result
.
sub
(
storage
.
legacy_disk_path
,
''
)
elsif
fail_on_not_found
elsif
fail_on_not_found
raise
NotFoundError
.
new
(
"No known storage path matches
#{
repo_path
.
inspect
}
"
)
raise
NotFoundError
.
new
(
"No known storage path matches
#{
repo_path
.
inspect
}
"
)
end
end
...
...
lib/gitlab/setup_helper.rb
View file @
f4eb9901
...
@@ -24,7 +24,7 @@ module Gitlab
...
@@ -24,7 +24,7 @@ module Gitlab
address
=
val
[
'gitaly_address'
]
address
=
val
[
'gitaly_address'
]
end
end
storages
<<
{
name:
key
,
path:
val
[
'path'
]
}
storages
<<
{
name:
key
,
path:
val
.
legacy_disk_path
}
end
end
if
Rails
.
env
.
test?
if
Rails
.
env
.
test?
...
...
lib/gitlab/shell.rb
View file @
f4eb9901
...
@@ -82,7 +82,7 @@ module Gitlab
...
@@ -82,7 +82,7 @@ module Gitlab
repository
.
gitaly_repository_client
.
create_repository
repository
.
gitaly_repository_client
.
create_repository
true
true
else
else
repo_path
=
File
.
join
(
Gitlab
.
config
.
repositories
.
storages
[
storage
]
[
'path'
]
,
relative_path
)
repo_path
=
File
.
join
(
Gitlab
.
config
.
repositories
.
storages
[
storage
]
.
legacy_disk_path
,
relative_path
)
Gitlab
::
Git
::
Repository
.
create
(
repo_path
,
bare:
true
,
symlink_hooks_to:
gitlab_shell_hooks_path
)
Gitlab
::
Git
::
Repository
.
create
(
repo_path
,
bare:
true
,
symlink_hooks_to:
gitlab_shell_hooks_path
)
end
end
end
end
...
@@ -131,7 +131,7 @@ module Gitlab
...
@@ -131,7 +131,7 @@ module Gitlab
if
is_enabled
if
is_enabled
repository
.
gitaly_repository_client
.
fetch_remote
(
remote
,
ssh_auth:
ssh_auth
,
forced:
forced
,
no_tags:
no_tags
,
timeout:
git_timeout
,
prune:
prune
)
repository
.
gitaly_repository_client
.
fetch_remote
(
remote
,
ssh_auth:
ssh_auth
,
forced:
forced
,
no_tags:
no_tags
,
timeout:
git_timeout
,
prune:
prune
)
else
else
storage_path
=
Gitlab
.
config
.
repositories
.
storages
[
repository
.
storage
]
[
"path"
]
storage_path
=
Gitlab
.
config
.
repositories
.
storages
[
repository
.
storage
]
.
legacy_disk_path
local_fetch_remote
(
storage_path
,
repository
.
relative_path
,
remote
,
ssh_auth:
ssh_auth
,
forced:
forced
,
no_tags:
no_tags
,
prune:
prune
)
local_fetch_remote
(
storage_path
,
repository
.
relative_path
,
remote
,
ssh_auth:
ssh_auth
,
forced:
forced
,
no_tags:
no_tags
,
prune:
prune
)
end
end
end
end
...
@@ -478,7 +478,7 @@ module Gitlab
...
@@ -478,7 +478,7 @@ module Gitlab
def
gitaly_namespace_client
(
storage_path
)
def
gitaly_namespace_client
(
storage_path
)
storage
,
_value
=
Gitlab
.
config
.
repositories
.
storages
.
find
do
|
storage
,
value
|
storage
,
_value
=
Gitlab
.
config
.
repositories
.
storages
.
find
do
|
storage
,
value
|
value
[
'path'
]
==
storage_path
value
.
legacy_disk_path
==
storage_path
end
end
Gitlab
::
GitalyClient
::
NamespaceService
.
new
(
storage
)
Gitlab
::
GitalyClient
::
NamespaceService
.
new
(
storage
)
...
...
lib/gitlab/task_helpers.rb
View file @
f4eb9901
...
@@ -129,7 +129,7 @@ module Gitlab
...
@@ -129,7 +129,7 @@ module Gitlab
def
all_repos
def
all_repos
Gitlab
.
config
.
repositories
.
storages
.
each_value
do
|
repository_storage
|
Gitlab
.
config
.
repositories
.
storages
.
each_value
do
|
repository_storage
|
IO
.
popen
(
%W(find
#{
repository_storage
[
'path'
]
}
-mindepth 2 -type d -name *.git)
)
do
|
find
|
IO
.
popen
(
%W(find
#{
repository_storage
.
legacy_disk_path
}
-mindepth 2 -type d -name *.git)
)
do
|
find
|
find
.
each_line
do
|
path
|
find
.
each_line
do
|
path
|
yield
path
.
chomp
yield
path
.
chomp
end
end
...
@@ -138,7 +138,7 @@ module Gitlab
...
@@ -138,7 +138,7 @@ module Gitlab
end
end
def
repository_storage_paths_args
def
repository_storage_paths_args
Gitlab
.
config
.
repositories
.
storages
.
values
.
map
{
|
rs
|
rs
[
'path'
]
}
Gitlab
.
config
.
repositories
.
storages
.
values
.
map
{
|
rs
|
rs
.
legacy_disk_path
}
end
end
def
user_home
def
user_home
...
...
lib/system_check/orphans/namespace_check.rb
View file @
f4eb9901
...
@@ -6,8 +6,8 @@ module SystemCheck
...
@@ -6,8 +6,8 @@ module SystemCheck
def
multi_check
def
multi_check
Gitlab
.
config
.
repositories
.
storages
.
each
do
|
storage_name
,
repository_storage
|
Gitlab
.
config
.
repositories
.
storages
.
each
do
|
storage_name
,
repository_storage
|
$stdout
.
puts
$stdout
.
puts
$stdout
.
puts
"* Storage:
#{
storage_name
}
(
#{
repository_storage
[
'path'
]
}
)"
.
color
(
:yellow
)
$stdout
.
puts
"* Storage:
#{
storage_name
}
(
#{
repository_storage
.
legacy_disk_path
}
)"
.
color
(
:yellow
)
toplevel_namespace_dirs
=
disk_namespaces
(
repository_storage
[
'path'
]
)
toplevel_namespace_dirs
=
disk_namespaces
(
repository_storage
.
legacy_disk_path
)
orphans
=
(
toplevel_namespace_dirs
-
existing_namespaces
)
orphans
=
(
toplevel_namespace_dirs
-
existing_namespaces
)
print_orphans
(
orphans
,
storage_name
)
print_orphans
(
orphans
,
storage_name
)
...
...
lib/system_check/orphans/repository_check.rb
View file @
f4eb9901
...
@@ -6,10 +6,12 @@ module SystemCheck
...
@@ -6,10 +6,12 @@ module SystemCheck
def
multi_check
def
multi_check
Gitlab
.
config
.
repositories
.
storages
.
each
do
|
storage_name
,
repository_storage
|
Gitlab
.
config
.
repositories
.
storages
.
each
do
|
storage_name
,
repository_storage
|
storage_path
=
repository_storage
.
legacy_disk_path
$stdout
.
puts
$stdout
.
puts
$stdout
.
puts
"* Storage:
#{
storage_name
}
(
#{
repository_storage
[
'path'
]
}
)"
.
color
(
:yellow
)
$stdout
.
puts
"* Storage:
#{
storage_name
}
(
#{
storage_path
}
)"
.
color
(
:yellow
)
repositories
=
disk_repositories
(
repository_storage
[
'path'
]
)
repositories
=
disk_repositories
(
storage_path
)
orphans
=
(
repositories
-
fetch_repositories
(
storage_name
))
orphans
=
(
repositories
-
fetch_repositories
(
storage_name
))
print_orphans
(
orphans
,
storage_name
)
print_orphans
(
orphans
,
storage_name
)
...
...
lib/tasks/gitlab/check.rake
View file @
f4eb9901
...
@@ -64,7 +64,7 @@ namespace :gitlab do
...
@@ -64,7 +64,7 @@ namespace :gitlab do
puts
"Repo base directory exists?"
puts
"Repo base directory exists?"
Gitlab
.
config
.
repositories
.
storages
.
each
do
|
name
,
repository_storage
|
Gitlab
.
config
.
repositories
.
storages
.
each
do
|
name
,
repository_storage
|
repo_base_path
=
repository_storage
[
'path'
]
repo_base_path
=
repository_storage
.
legacy_disk_path
print
"
#{
name
}
... "
print
"
#{
name
}
... "
if
File
.
exist?
(
repo_base_path
)
if
File
.
exist?
(
repo_base_path
)
...
@@ -89,7 +89,7 @@ namespace :gitlab do
...
@@ -89,7 +89,7 @@ namespace :gitlab do
puts
"Repo storage directories are symlinks?"
puts
"Repo storage directories are symlinks?"
Gitlab
.
config
.
repositories
.
storages
.
each
do
|
name
,
repository_storage
|
Gitlab
.
config
.
repositories
.
storages
.
each
do
|
name
,
repository_storage
|
repo_base_path
=
repository_storage
[
'path'
]
repo_base_path
=
repository_storage
.
legacy_disk_path
print
"
#{
name
}
... "
print
"
#{
name
}
... "
unless
File
.
exist?
(
repo_base_path
)
unless
File
.
exist?
(
repo_base_path
)
...
@@ -113,7 +113,7 @@ namespace :gitlab do
...
@@ -113,7 +113,7 @@ namespace :gitlab do
puts
"Repo paths access is drwxrws---?"
puts
"Repo paths access is drwxrws---?"
Gitlab
.
config
.
repositories
.
storages
.
each
do
|
name
,
repository_storage
|
Gitlab
.
config
.
repositories
.
storages
.
each
do
|
name
,
repository_storage
|
repo_base_path
=
repository_storage
[
'path'
]
repo_base_path
=
repository_storage
.
legacy_disk_path
print
"
#{
name
}
... "
print
"
#{
name
}
... "
unless
File
.
exist?
(
repo_base_path
)
unless
File
.
exist?
(
repo_base_path
)
...
@@ -143,7 +143,7 @@ namespace :gitlab do
...
@@ -143,7 +143,7 @@ namespace :gitlab do
puts
"Repo paths owned by
#{
gitlab_shell_ssh_user
}
:root, or
#{
gitlab_shell_ssh_user
}
:
#{
Gitlab
.
config
.
gitlab_shell
.
owner_group
}
?"
puts
"Repo paths owned by
#{
gitlab_shell_ssh_user
}
:root, or
#{
gitlab_shell_ssh_user
}
:
#{
Gitlab
.
config
.
gitlab_shell
.
owner_group
}
?"
Gitlab
.
config
.
repositories
.
storages
.
each
do
|
name
,
repository_storage
|
Gitlab
.
config
.
repositories
.
storages
.
each
do
|
name
,
repository_storage
|
repo_base_path
=
repository_storage
[
'path'
]
repo_base_path
=
repository_storage
.
legacy_disk_path
print
"
#{
name
}
... "
print
"
#{
name
}
... "
unless
File
.
exist?
(
repo_base_path
)
unless
File
.
exist?
(
repo_base_path
)
...
...
lib/tasks/gitlab/cleanup.rake
View file @
f4eb9901
...
@@ -12,7 +12,7 @@ namespace :gitlab do
...
@@ -12,7 +12,7 @@ namespace :gitlab do
namespaces
=
Namespace
.
pluck
(
:path
)
namespaces
=
Namespace
.
pluck
(
:path
)
namespaces
<<
HASHED_REPOSITORY_NAME
# add so that it will be ignored
namespaces
<<
HASHED_REPOSITORY_NAME
# add so that it will be ignored
Gitlab
.
config
.
repositories
.
storages
.
each
do
|
name
,
repository_storage
|
Gitlab
.
config
.
repositories
.
storages
.
each
do
|
name
,
repository_storage
|
git_base_path
=
repository_storage
[
'path'
]
git_base_path
=
repository_storage
.
legacy_disk_path
all_dirs
=
Dir
.
glob
(
git_base_path
+
'/*'
)
all_dirs
=
Dir
.
glob
(
git_base_path
+
'/*'
)
puts
git_base_path
.
color
(
:yellow
)
puts
git_base_path
.
color
(
:yellow
)
...
@@ -54,7 +54,7 @@ namespace :gitlab do
...
@@ -54,7 +54,7 @@ namespace :gitlab do
remove_flag
=
ENV
[
'REMOVE'
]
remove_flag
=
ENV
[
'REMOVE'
]
Gitlab
.
config
.
repositories
.
storages
.
each
do
|
name
,
repository_storage
|
Gitlab
.
config
.
repositories
.
storages
.
each
do
|
name
,
repository_storage
|
repo_root
=
repository_storage
[
'path'
]
.
chomp
(
'/'
)
repo_root
=
repository_storage
.
legacy_disk_path
.
chomp
(
'/'
)
# Look for global repos (legacy, depth 1) and normal repos (depth 2)
# Look for global repos (legacy, depth 1) and normal repos (depth 2)
IO
.
popen
(
%W(find
#{
repo_root
}
-mindepth 1 -maxdepth 2 -name *+moved*.git)
)
do
|
find
|
IO
.
popen
(
%W(find
#{
repo_root
}
-mindepth 1 -maxdepth 2 -name *+moved*.git)
)
do
|
find
|
find
.
each_line
do
|
path
|
find
.
each_line
do
|
path
|
...
@@ -84,7 +84,7 @@ namespace :gitlab do
...
@@ -84,7 +84,7 @@ namespace :gitlab do
move_suffix
=
"+orphaned+
#{
Time
.
now
.
to_i
}
"
move_suffix
=
"+orphaned+
#{
Time
.
now
.
to_i
}
"
Gitlab
.
config
.
repositories
.
storages
.
each
do
|
name
,
repository_storage
|
Gitlab
.
config
.
repositories
.
storages
.
each
do
|
name
,
repository_storage
|
repo_root
=
repository_storage
[
'path'
]
repo_root
=
repository_storage
.
legacy_disk_path
# Look for global repos (legacy, depth 1) and normal repos (depth 2)
# Look for global repos (legacy, depth 1) and normal repos (depth 2)
IO
.
popen
(
%W(find
#{
repo_root
}
-mindepth 1 -maxdepth 2 -name *.git)
)
do
|
find
|
IO
.
popen
(
%W(find
#{
repo_root
}
-mindepth 1 -maxdepth 2 -name *.git)
)
do
|
find
|
find
.
each_line
do
|
path
|
find
.
each_line
do
|
path
|
...
...
lib/tasks/gitlab/info.rake
View file @
f4eb9901
...
@@ -83,7 +83,7 @@ namespace :gitlab do
...
@@ -83,7 +83,7 @@ namespace :gitlab do
puts
"Version:
\t
#{
gitlab_shell_version
||
"unknown"
.
color
(
:red
)
}
"
puts
"Version:
\t
#{
gitlab_shell_version
||
"unknown"
.
color
(
:red
)
}
"
puts
"Repository storage paths:"
puts
"Repository storage paths:"
Gitlab
.
config
.
repositories
.
storages
.
each
do
|
name
,
repository_storage
|
Gitlab
.
config
.
repositories
.
storages
.
each
do
|
name
,
repository_storage
|
puts
"-
#{
name
}
:
\t
#{
repository_storage
[
'path'
]
}
"
puts
"-
#{
name
}
:
\t
#{
repository_storage
.
legacy_disk_path
}
"
end
end
puts
"Hooks:
\t\t
#{
Gitlab
.
config
.
gitlab_shell
.
hooks_path
}
"
puts
"Hooks:
\t\t
#{
Gitlab
.
config
.
gitlab_shell
.
hooks_path
}
"
puts
"Git:
\t\t
#{
Gitlab
.
config
.
git
.
bin_path
}
"
puts
"Git:
\t\t
#{
Gitlab
.
config
.
git
.
bin_path
}
"
...
...
spec/initializers/6_validations_spec.rb
View file @
f4eb9901
...
@@ -14,12 +14,12 @@ describe '6_validations' do
...
@@ -14,12 +14,12 @@ describe '6_validations' do
context
'with correct settings'
do
context
'with correct settings'
do
before
do
before
do
mock_storages
(
'foo'
=>
{
'path'
=>
'tmp/tests/paths/a/b/c'
},
'bar'
=>
{
'path'
=>
'tmp/tests/paths/a/b/d'
}
)
mock_storages
(
'foo'
=>
Gitlab
::
GitalyClient
::
StorageSettings
.
new
(
'path'
=>
'tmp/tests/paths/a/b/c'
),
'bar'
=>
Gitlab
::
GitalyClient
::
StorageSettings
.
new
(
'path'
=>
'tmp/tests/paths/a/b/d'
)
)
end
end
context
'when one of the settings is incorrect'
do
context
'when one of the settings is incorrect'
do
before
do
before
do
mock_storages
(
'foo'
=>
{
'path'
=>
'tmp/tests/paths/a/b/c'
,
'failure_count_threshold'
=>
'not a number'
}
)
mock_storages
(
'foo'
=>
Gitlab
::
GitalyClient
::
StorageSettings
.
new
(
'path'
=>
'tmp/tests/paths/a/b/c'
,
'failure_count_threshold'
=>
'not a number'
)
)
end
end
it
'throws an error'
do
it
'throws an error'
do
...
@@ -29,7 +29,7 @@ describe '6_validations' do
...
@@ -29,7 +29,7 @@ describe '6_validations' do
context
'when one of the settings is incorrect'
do
context
'when one of the settings is incorrect'
do
before
do
before
do
mock_storages
(
'foo'
=>
{
'path'
=>
'tmp/tests/paths/a/b/c'
,
'failure_count_threshold'
=>
'not a number'
}
)
mock_storages
(
'foo'
=>
Gitlab
::
GitalyClient
::
StorageSettings
.
new
(
'path'
=>
'tmp/tests/paths/a/b/c'
,
'failure_count_threshold'
=>
'not a number'
)
)
end
end
it
'throws an error'
do
it
'throws an error'
do
...
@@ -39,7 +39,7 @@ describe '6_validations' do
...
@@ -39,7 +39,7 @@ describe '6_validations' do
context
'with invalid storage names'
do
context
'with invalid storage names'
do
before
do
before
do
mock_storages
(
'name with spaces'
=>
{
'path'
=>
'tmp/tests/paths/a/b/c'
}
)
mock_storages
(
'name with spaces'
=>
Gitlab
::
GitalyClient
::
StorageSettings
.
new
(
'path'
=>
'tmp/tests/paths/a/b/c'
)
)
end
end
it
'throws an error'
do
it
'throws an error'
do
...
@@ -71,7 +71,7 @@ describe '6_validations' do
...
@@ -71,7 +71,7 @@ describe '6_validations' do
describe
'validate_storages_paths'
do
describe
'validate_storages_paths'
do
context
'with correct settings'
do
context
'with correct settings'
do
before
do
before
do
mock_storages
(
'foo'
=>
{
'path'
=>
'tmp/tests/paths/a/b/c'
},
'bar'
=>
{
'path'
=>
'tmp/tests/paths/a/b/d'
}
)
mock_storages
(
'foo'
=>
Gitlab
::
GitalyClient
::
StorageSettings
.
new
(
'path'
=>
'tmp/tests/paths/a/b/c'
),
'bar'
=>
Gitlab
::
GitalyClient
::
StorageSettings
.
new
(
'path'
=>
'tmp/tests/paths/a/b/d'
)
)
end
end
it
'passes through'
do
it
'passes through'
do
...
@@ -81,7 +81,7 @@ describe '6_validations' do
...
@@ -81,7 +81,7 @@ describe '6_validations' do
context
'with nested storage paths'
do
context
'with nested storage paths'
do
before
do
before
do
mock_storages
(
'foo'
=>
{
'path'
=>
'tmp/tests/paths/a/b/c'
},
'bar'
=>
{
'path'
=>
'tmp/tests/paths/a/b/c/d'
}
)
mock_storages
(
'foo'
=>
Gitlab
::
GitalyClient
::
StorageSettings
.
new
(
'path'
=>
'tmp/tests/paths/a/b/c'
),
'bar'
=>
Gitlab
::
GitalyClient
::
StorageSettings
.
new
(
'path'
=>
'tmp/tests/paths/a/b/c/d'
)
)
end
end
it
'throws an error'
do
it
'throws an error'
do
...
@@ -91,7 +91,7 @@ describe '6_validations' do
...
@@ -91,7 +91,7 @@ describe '6_validations' do
context
'with similar but un-nested storage paths'
do
context
'with similar but un-nested storage paths'
do
before
do
before
do
mock_storages
(
'foo'
=>
{
'path'
=>
'tmp/tests/paths/a/b/c'
},
'bar'
=>
{
'path'
=>
'tmp/tests/paths/a/b/c2'
}
)
mock_storages
(
'foo'
=>
Gitlab
::
GitalyClient
::
StorageSettings
.
new
(
'path'
=>
'tmp/tests/paths/a/b/c'
),
'bar'
=>
Gitlab
::
GitalyClient
::
StorageSettings
.
new
(
'path'
=>
'tmp/tests/paths/a/b/c2'
)
)
end
end
it
'passes through'
do
it
'passes through'
do
...
@@ -101,7 +101,7 @@ describe '6_validations' do
...
@@ -101,7 +101,7 @@ describe '6_validations' do
describe
'inaccessible storage'
do
describe
'inaccessible storage'
do
before
do
before
do
mock_storages
(
'foo'
=>
{
'path'
=>
'tmp/tests/a/path/that/does/not/exist'
}
)
mock_storages
(
'foo'
=>
Gitlab
::
GitalyClient
::
StorageSettings
.
new
(
'path'
=>
'tmp/tests/a/path/that/does/not/exist'
)
)
end
end
it
'passes through with a warning'
do
it
'passes through with a warning'
do
...
...
spec/initializers/settings_spec.rb
View file @
f4eb9901
require
'spec_helper'
require
'spec_helper'
require_relative
'../../config/initializers/1_settings'
require_relative
'../../config/initializers/1_settings'
unless
defined?
(
Settings
)
describe
Settings
do
describe
Settings
do
describe
'#ldap'
do
describe
'#ldap'
do
...
...
spec/lib/backup/repository_spec.rb
View file @
f4eb9901
...
@@ -33,7 +33,7 @@ describe Backup::Repository do
...
@@ -33,7 +33,7 @@ describe Backup::Repository do
let
(
:timestamp
)
{
Time
.
utc
(
2017
,
3
,
22
)
}
let
(
:timestamp
)
{
Time
.
utc
(
2017
,
3
,
22
)
}
let
(
:temp_dirs
)
do
let
(
:temp_dirs
)
do
Gitlab
.
config
.
repositories
.
storages
.
map
do
|
name
,
storage
|
Gitlab
.
config
.
repositories
.
storages
.
map
do
|
name
,
storage
|
File
.
join
(
storage
[
'path'
]
,
'..'
,
'repositories.old.'
+
timestamp
.
to_i
.
to_s
)
File
.
join
(
storage
.
legacy_disk_path
,
'..'
,
'repositories.old.'
+
timestamp
.
to_i
.
to_s
)
end
end
end
end
...
...
spec/lib/gitlab/bare_repository_import/repository_spec.rb
View file @
f4eb9901
...
@@ -54,7 +54,7 @@ describe ::Gitlab::BareRepositoryImport::Repository do
...
@@ -54,7 +54,7 @@ describe ::Gitlab::BareRepositoryImport::Repository do
context
'hashed storage'
do
context
'hashed storage'
do
let
(
:gitlab_shell
)
{
Gitlab
::
Shell
.
new
}
let
(
:gitlab_shell
)
{
Gitlab
::
Shell
.
new
}
let
(
:repository_storage
)
{
'default'
}
let
(
:repository_storage
)
{
'default'
}
let
(
:root_path
)
{
Gitlab
.
config
.
repositories
.
storages
[
repository_storage
]
[
'path'
]
}
let
(
:root_path
)
{
Gitlab
.
config
.
repositories
.
storages
[
repository_storage
]
.
legacy_disk_path
}
let
(
:hash
)
{
'6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b'
}
let
(
:hash
)
{
'6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b'
}
let
(
:hashed_path
)
{
"@hashed/6b/86/6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b"
}
let
(
:hashed_path
)
{
"@hashed/6b/86/6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b"
}
let
(
:repo_path
)
{
File
.
join
(
root_path
,
"
#{
hashed_path
}
.git"
)
}
let
(
:repo_path
)
{
File
.
join
(
root_path
,
"
#{
hashed_path
}
.git"
)
}
...
...
spec/lib/gitlab/health_checks/fs_shards_check_spec.rb
View file @
f4eb9901
...
@@ -26,7 +26,7 @@ describe Gitlab::HealthChecks::FsShardsCheck do
...
@@ -26,7 +26,7 @@ describe Gitlab::HealthChecks::FsShardsCheck do
let
(
:storages_paths
)
do
let
(
:storages_paths
)
do
{
{
default:
{
path:
tmp_dir
}
default:
Gitlab
::
GitalyClient
::
StorageSettings
.
new
(
'path'
=>
tmp_dir
)
}.
with_indifferent_access
}.
with_indifferent_access
end
end
...
@@ -56,7 +56,7 @@ describe Gitlab::HealthChecks::FsShardsCheck do
...
@@ -56,7 +56,7 @@ describe Gitlab::HealthChecks::FsShardsCheck do
context
'storage points to not existing folder'
do
context
'storage points to not existing folder'
do
let
(
:storages_paths
)
do
let
(
:storages_paths
)
do
{
{
default:
{
path:
'tmp/this/path/doesnt/exist'
}
default:
Gitlab
::
GitalyClient
::
StorageSettings
.
new
(
'path'
=>
'tmp/this/path/doesnt/exist'
)
}.
with_indifferent_access
}.
with_indifferent_access
end
end
...
@@ -102,7 +102,7 @@ describe Gitlab::HealthChecks::FsShardsCheck do
...
@@ -102,7 +102,7 @@ describe Gitlab::HealthChecks::FsShardsCheck do
context
'storage points to not existing folder'
do
context
'storage points to not existing folder'
do
let
(
:storages_paths
)
do
let
(
:storages_paths
)
do
{
{
default:
{
path:
'tmp/this/path/doesnt/exist'
}
default:
Gitlab
::
GitalyClient
::
StorageSettings
.
new
(
'path'
=>
'tmp/this/path/doesnt/exist'
)
}.
with_indifferent_access
}.
with_indifferent_access
end
end
...
...
spec/lib/gitlab/repo_path_spec.rb
View file @
f4eb9901
...
@@ -48,8 +48,8 @@ describe ::Gitlab::RepoPath do
...
@@ -48,8 +48,8 @@ describe ::Gitlab::RepoPath do
describe
'.strip_storage_path'
do
describe
'.strip_storage_path'
do
before
do
before
do
allow
(
Gitlab
.
config
.
repositories
).
to
receive
(
:storages
).
and_return
({
allow
(
Gitlab
.
config
.
repositories
).
to
receive
(
:storages
).
and_return
({
'storage1'
=>
{
'path'
=>
'/foo'
}
,
'storage1'
=>
Gitlab
::
GitalyClient
::
StorageSettings
.
new
(
'path'
=>
'/foo'
)
,
'storage2'
=>
{
'path'
=>
'/bar'
}
'storage2'
=>
Gitlab
::
GitalyClient
::
StorageSettings
.
new
(
'path'
=>
'/bar'
)
})
})
end
end
...
...
spec/lib/gitlab/shell_spec.rb
View file @
f4eb9901
...
@@ -405,7 +405,7 @@ describe Gitlab::Shell do
...
@@ -405,7 +405,7 @@ describe Gitlab::Shell do
describe
'#create_repository'
do
describe
'#create_repository'
do
shared_examples
'#create_repository'
do
shared_examples
'#create_repository'
do
let
(
:repository_storage
)
{
'default'
}
let
(
:repository_storage
)
{
'default'
}
let
(
:repository_storage_path
)
{
Gitlab
.
config
.
repositories
.
storages
[
repository_storage
]
[
'path'
]
}
let
(
:repository_storage_path
)
{
Gitlab
.
config
.
repositories
.
storages
[
repository_storage
]
.
legacy_disk_path
}
let
(
:repo_name
)
{
'project/path'
}
let
(
:repo_name
)
{
'project/path'
}
let
(
:created_path
)
{
File
.
join
(
repository_storage_path
,
repo_name
+
'.git'
)
}
let
(
:created_path
)
{
File
.
join
(
repository_storage_path
,
repo_name
+
'.git'
)
}
...
@@ -679,7 +679,7 @@ describe Gitlab::Shell do
...
@@ -679,7 +679,7 @@ describe Gitlab::Shell do
describe
'namespace actions'
do
describe
'namespace actions'
do
subject
{
described_class
.
new
}
subject
{
described_class
.
new
}
let
(
:storage_path
)
{
Gitlab
.
config
.
repositories
.
storages
.
default
.
path
}
let
(
:storage_path
)
{
Gitlab
.
config
.
repositories
.
storages
.
default
.
legacy_disk_
path
}
describe
'#add_namespace'
do
describe
'#add_namespace'
do
it
'creates a namespace'
do
it
'creates a namespace'
do
...
...
spec/migrations/remove_dot_git_from_usernames_spec.rb
View file @
f4eb9901
...
@@ -29,7 +29,9 @@ describe RemoveDotGitFromUsernames do
...
@@ -29,7 +29,9 @@ describe RemoveDotGitFromUsernames do
update_namespace
(
user
,
'test.git'
)
update_namespace
(
user
,
'test.git'
)
update_namespace
(
user2
,
'test_git'
)
update_namespace
(
user2
,
'test_git'
)
storages
=
{
'default'
=>
'tmp/tests/custom_repositories'
}
default_hash
=
Gitlab
.
config
.
repositories
.
storages
.
default
.
to_h
default_hash
[
'path'
]
=
'tmp/tests/custom_repositories'
storages
=
{
'default'
=>
Gitlab
::
GitalyClient
::
StorageSettings
.
new
(
default_hash
)
}
allow
(
Gitlab
.
config
.
repositories
).
to
receive
(
:storages
).
and_return
(
storages
)
allow
(
Gitlab
.
config
.
repositories
).
to
receive
(
:storages
).
and_return
(
storages
)
allow
(
migration
).
to
receive
(
:route_exists?
).
with
(
'test_git'
).
and_return
(
true
)
allow
(
migration
).
to
receive
(
:route_exists?
).
with
(
'test_git'
).
and_return
(
true
)
...
...
spec/models/namespace_spec.rb
View file @
f4eb9901
...
@@ -317,7 +317,7 @@ describe Namespace do
...
@@ -317,7 +317,7 @@ describe Namespace do
end
end
describe
'#rm_dir'
,
'callback'
do
describe
'#rm_dir'
,
'callback'
do
let
(
:repository_storage_path
)
{
Gitlab
.
config
.
repositories
.
storages
.
default
[
'path'
]
}
let
(
:repository_storage_path
)
{
Gitlab
.
config
.
repositories
.
storages
.
default
.
legacy_disk_path
}
let
(
:path_in_dir
)
{
File
.
join
(
repository_storage_path
,
namespace
.
full_path
)
}
let
(
:path_in_dir
)
{
File
.
join
(
repository_storage_path
,
namespace
.
full_path
)
}
let
(
:deleted_path
)
{
namespace
.
full_path
.
gsub
(
namespace
.
path
,
"
#{
namespace
.
full_path
}
+
#{
namespace
.
id
}
+deleted"
)
}
let
(
:deleted_path
)
{
namespace
.
full_path
.
gsub
(
namespace
.
path
,
"
#{
namespace
.
full_path
}
+
#{
namespace
.
id
}
+deleted"
)
}
let
(
:deleted_path_in_dir
)
{
File
.
join
(
repository_storage_path
,
deleted_path
)
}
let
(
:deleted_path_in_dir
)
{
File
.
join
(
repository_storage_path
,
deleted_path
)
}
...
...
spec/models/project_spec.rb
View file @
f4eb9901
...
@@ -1234,8 +1234,8 @@ describe Project do
...
@@ -1234,8 +1234,8 @@ describe Project do
before
do
before
do
storages
=
{
storages
=
{
'default'
=>
{
'path'
=>
'tmp/tests/repositories'
}
,
'default'
=>
Gitlab
::
GitalyClient
::
StorageSettings
.
new
(
'path'
=>
'tmp/tests/repositories'
)
,
'picked'
=>
{
'path'
=>
'tmp/tests/repositories'
}
'picked'
=>
Gitlab
::
GitalyClient
::
StorageSettings
.
new
(
'path'
=>
'tmp/tests/repositories'
)
}
}
allow
(
Gitlab
.
config
.
repositories
).
to
receive
(
:storages
).
and_return
(
storages
)
allow
(
Gitlab
.
config
.
repositories
).
to
receive
(
:storages
).
and_return
(
storages
)
end
end
...
...
spec/services/projects/create_service_spec.rb
View file @
f4eb9901
...
@@ -153,7 +153,7 @@ describe Projects::CreateService, '#execute' do
...
@@ -153,7 +153,7 @@ describe Projects::CreateService, '#execute' do
context
'when another repository already exists on disk'
do
context
'when another repository already exists on disk'
do
let
(
:repository_storage
)
{
'default'
}
let
(
:repository_storage
)
{
'default'
}
let
(
:repository_storage_path
)
{
Gitlab
.
config
.
repositories
.
storages
[
repository_storage
]
[
'path'
]
}
let
(
:repository_storage_path
)
{
Gitlab
.
config
.
repositories
.
storages
[
repository_storage
]
.
legacy_disk_path
}
let
(
:opts
)
do
let
(
:opts
)
do
{
{
...
...
spec/services/projects/fork_service_spec.rb
View file @
f4eb9901
...
@@ -105,7 +105,7 @@ describe Projects::ForkService do
...
@@ -105,7 +105,7 @@ describe Projects::ForkService do
context
'repository already exists'
do
context
'repository already exists'
do
let
(
:repository_storage
)
{
'default'
}
let
(
:repository_storage
)
{
'default'
}
let
(
:repository_storage_path
)
{
Gitlab
.
config
.
repositories
.
storages
[
repository_storage
]
[
'path'
]
}
let
(
:repository_storage_path
)
{
Gitlab
.
config
.
repositories
.
storages
[
repository_storage
]
.
legacy_disk_path
}
before
do
before
do
gitlab_shell
.
create_repository
(
repository_storage
,
"
#{
@to_user
.
namespace
.
full_path
}
/
#{
@from_project
.
path
}
"
)
gitlab_shell
.
create_repository
(
repository_storage
,
"
#{
@to_user
.
namespace
.
full_path
}
/
#{
@from_project
.
path
}
"
)
...
...
spec/services/projects/transfer_service_spec.rb
View file @
f4eb9901
...
@@ -146,7 +146,7 @@ describe Projects::TransferService do
...
@@ -146,7 +146,7 @@ describe Projects::TransferService do
context
'namespace which contains orphan repository with same projects path name'
do
context
'namespace which contains orphan repository with same projects path name'
do
let
(
:repository_storage
)
{
'default'
}
let
(
:repository_storage
)
{
'default'
}
let
(
:repository_storage_path
)
{
Gitlab
.
config
.
repositories
.
storages
[
repository_storage
]
[
'path'
]
}
let
(
:repository_storage_path
)
{
Gitlab
.
config
.
repositories
.
storages
[
repository_storage
]
.
legacy_disk_path
}
before
do
before
do
group
.
add_owner
(
user
)
group
.
add_owner
(
user
)
...
...
spec/services/projects/update_service_spec.rb
View file @
f4eb9901
...
@@ -191,7 +191,7 @@ describe Projects::UpdateService, '#execute' do
...
@@ -191,7 +191,7 @@ describe Projects::UpdateService, '#execute' do
context
'when renaming a project'
do
context
'when renaming a project'
do
let
(
:repository_storage
)
{
'default'
}
let
(
:repository_storage
)
{
'default'
}
let
(
:repository_storage_path
)
{
Gitlab
.
config
.
repositories
.
storages
[
repository_storage
]
[
'path'
]
}
let
(
:repository_storage_path
)
{
Gitlab
.
config
.
repositories
.
storages
[
repository_storage
]
.
legacy_disk_path
}
context
'with legacy storage'
do
context
'with legacy storage'
do
let
(
:project
)
{
create
(
:project
,
:legacy_storage
,
:repository
,
creator:
user
,
namespace:
user
.
namespace
)
}
let
(
:project
)
{
create
(
:project
,
:legacy_storage
,
:repository
,
creator:
user
,
namespace:
user
.
namespace
)
}
...
...
spec/support/stored_repositories.rb
View file @
f4eb9901
...
@@ -4,7 +4,7 @@ RSpec.configure do |config|
...
@@ -4,7 +4,7 @@ RSpec.configure do |config|
end
end
config
.
before
(
:all
,
:broken_storage
)
do
config
.
before
(
:all
,
:broken_storage
)
do
FileUtils
.
rm_rf
Gitlab
.
config
.
repositories
.
storages
.
broken
[
'path'
]
FileUtils
.
rm_rf
Gitlab
.
config
.
repositories
.
storages
.
broken
.
legacy_disk_path
end
end
config
.
before
(
:each
,
:broken_storage
)
do
config
.
before
(
:each
,
:broken_storage
)
do
...
...
spec/support/stub_configuration.rb
View file @
f4eb9901
...
@@ -64,8 +64,12 @@ module StubConfiguration
...
@@ -64,8 +64,12 @@ module StubConfiguration
# Default storage is always required
# Default storage is always required
messages
[
'default'
]
||=
Gitlab
.
config
.
repositories
.
storages
.
default
messages
[
'default'
]
||=
Gitlab
.
config
.
repositories
.
storages
.
default
messages
.
each
do
|
storage_name
,
storage_settings
|
messages
.
each
do
|
storage_name
,
storage_hash
|
storage_settings
[
'path'
]
=
TestEnv
.
repos_path
unless
storage_settings
.
key?
(
'path'
)
if
!
storage_hash
.
key?
(
'path'
)
||
storage_hash
[
'path'
]
==
Gitlab
::
GitalyClient
::
StorageSettings
::
Deprecated
storage_hash
[
'path'
]
=
TestEnv
.
repos_path
end
messages
[
storage_name
]
=
Gitlab
::
GitalyClient
::
StorageSettings
.
new
(
storage_hash
.
to_h
)
end
end
allow
(
Gitlab
.
config
.
repositories
).
to
receive
(
:storages
).
and_return
(
Settingslogic
.
new
(
messages
))
allow
(
Gitlab
.
config
.
repositories
).
to
receive
(
:storages
).
and_return
(
Settingslogic
.
new
(
messages
))
...
...
spec/support/test_env.rb
View file @
f4eb9901
...
@@ -226,7 +226,7 @@ module TestEnv
...
@@ -226,7 +226,7 @@ module TestEnv
end
end
def
repos_path
def
repos_path
Gitlab
.
config
.
repositories
.
storages
.
default
[
'path'
]
Gitlab
.
config
.
repositories
.
storages
.
default
.
legacy_disk_path
end
end
def
backup_path
def
backup_path
...
...
spec/tasks/gitlab/backup_rake_spec.rb
View file @
f4eb9901
...
@@ -195,14 +195,23 @@ describe 'gitlab:app namespace rake task' do
...
@@ -195,14 +195,23 @@ describe 'gitlab:app namespace rake task' do
end
end
context
'multiple repository storages'
do
context
'multiple repository storages'
do
let
(
:gitaly_address
)
{
Gitlab
.
config
.
repositories
.
storages
.
default
.
gitaly_address
}
let
(
:storage_default
)
do
Gitlab
::
GitalyClient
::
StorageSettings
.
new
(
@default_storage_hash
.
merge
(
'path'
=>
'tmp/tests/default_storage'
))
end
let
(
:test_second_storage
)
do
Gitlab
::
GitalyClient
::
StorageSettings
.
new
(
@default_storage_hash
.
merge
(
'path'
=>
'tmp/tests/custom_storage'
))
end
let
(
:storages
)
do
let
(
:storages
)
do
{
{
'default'
=>
{
'path'
=>
Settings
.
absolute
(
'tmp/tests/default_storage'
),
'gitaly_address'
=>
gitaly_address
}
,
'default'
=>
storage_default
,
'test_second_storage'
=>
{
'path'
=>
Settings
.
absolute
(
'tmp/tests/custom_storage'
),
'gitaly_address'
=>
gitaly_address
}
'test_second_storage'
=>
test_second_storage
}
}
end
end
before
(
:all
)
do
@default_storage_hash
=
Gitlab
.
config
.
repositories
.
storages
.
default
.
to_h
end
before
do
before
do
# We only need a backup of the repositories for this test
# We only need a backup of the repositories for this test
stub_env
(
'SKIP'
,
'db,uploads,builds,artifacts,lfs,registry'
)
stub_env
(
'SKIP'
,
'db,uploads,builds,artifacts,lfs,registry'
)
...
...
spec/tasks/gitlab/cleanup_rake_spec.rb
View file @
f4eb9901
...
@@ -6,13 +6,16 @@ describe 'gitlab:cleanup rake tasks' do
...
@@ -6,13 +6,16 @@ describe 'gitlab:cleanup rake tasks' do
end
end
describe
'cleanup'
do
describe
'cleanup'
do
let
(
:gitaly_address
)
{
Gitlab
.
config
.
repositories
.
storages
.
default
.
gitaly_address
}
let
(
:storages
)
do
let
(
:storages
)
do
{
{
'default'
=>
{
'path'
=>
Settings
.
absolute
(
'tmp/tests/default_storage'
),
'gitaly_address'
=>
gitaly_address
}
'default'
=>
Gitlab
::
GitalyClient
::
StorageSettings
.
new
(
@default_storage_hash
.
merge
(
'path'
=>
'tmp/tests/default_storage'
))
}
}
end
end
before
(
:all
)
do
@default_storage_hash
=
Gitlab
.
config
.
repositories
.
storages
.
default
.
to_h
end
before
do
before
do
FileUtils
.
mkdir
(
Settings
.
absolute
(
'tmp/tests/default_storage'
))
FileUtils
.
mkdir
(
Settings
.
absolute
(
'tmp/tests/default_storage'
))
allow
(
Gitlab
.
config
.
repositories
).
to
receive
(
:storages
).
and_return
(
storages
)
allow
(
Gitlab
.
config
.
repositories
).
to
receive
(
:storages
).
and_return
(
storages
)
...
...
spec/tasks/gitlab/git_rake_spec.rb
View file @
f4eb9901
require
'rake_helper'
require
'rake_helper'
describe
'gitlab:git rake tasks'
do
describe
'gitlab:git rake tasks'
do
before
(
:all
)
do
@default_storage_hash
=
Gitlab
.
config
.
repositories
.
storages
.
default
.
to_h
end
before
do
before
do
Rake
.
application
.
rake_require
'tasks/gitlab/git'
Rake
.
application
.
rake_require
'tasks/gitlab/git'
storages
=
{
'default'
=>
Gitlab
::
GitalyClient
::
StorageSettings
.
new
(
@default_storage_hash
.
merge
(
'path'
=>
'tmp/tests/default_storage'
))
}
storages
=
{
'default'
=>
{
'path'
=>
Settings
.
absolute
(
'tmp/tests/default_storage'
)
}
}
FileUtils
.
mkdir_p
(
Settings
.
absolute
(
'tmp/tests/default_storage/@hashed/1/2/test.git'
))
FileUtils
.
mkdir_p
(
Settings
.
absolute
(
'tmp/tests/default_storage/@hashed/1/2/test.git'
))
allow
(
Gitlab
.
config
.
repositories
).
to
receive
(
:storages
).
and_return
(
storages
)
allow
(
Gitlab
.
config
.
repositories
).
to
receive
(
:storages
).
and_return
(
storages
)
...
...
spec/tasks/gitlab/gitaly_rake_spec.rb
View file @
f4eb9901
...
@@ -99,14 +99,14 @@ describe 'gitlab:gitaly namespace rake task' do
...
@@ -99,14 +99,14 @@ describe 'gitlab:gitaly namespace rake task' do
describe
'storage_config'
do
describe
'storage_config'
do
it
'prints storage configuration in a TOML format'
do
it
'prints storage configuration in a TOML format'
do
config
=
{
config
=
{
'default'
=>
{
'default'
=>
Gitlab
::
GitalyClient
::
StorageSettings
.
new
(
'path'
=>
'/path/to/default'
,
'path'
=>
'/path/to/default'
,
'gitaly_address'
=>
'unix:/path/to/my.socket'
'gitaly_address'
=>
'unix:/path/to/my.socket'
}
,
)
,
'nfs_01'
=>
{
'nfs_01'
=>
Gitlab
::
GitalyClient
::
StorageSettings
.
new
(
'path'
=>
'/path/to/nfs_01'
,
'path'
=>
'/path/to/nfs_01'
,
'gitaly_address'
=>
'unix:/path/to/my.socket'
'gitaly_address'
=>
'unix:/path/to/my.socket'
}
)
}
}
allow
(
Gitlab
.
config
.
repositories
).
to
receive
(
:storages
).
and_return
(
config
)
allow
(
Gitlab
.
config
.
repositories
).
to
receive
(
:storages
).
and_return
(
config
)
allow
(
Rails
.
env
).
to
receive
(
:test?
).
and_return
(
false
)
allow
(
Rails
.
env
).
to
receive
(
:test?
).
and_return
(
false
)
...
@@ -134,7 +134,7 @@ describe 'gitlab:gitaly namespace rake task' do
...
@@ -134,7 +134,7 @@ describe 'gitlab:gitaly namespace rake task' do
parsed_output
=
TomlRB
.
parse
(
expected_output
)
parsed_output
=
TomlRB
.
parse
(
expected_output
)
config
.
each
do
|
name
,
params
|
config
.
each
do
|
name
,
params
|
expect
(
parsed_output
[
'storage'
]).
to
include
({
'name'
=>
name
,
'path'
=>
params
[
'path'
]
})
expect
(
parsed_output
[
'storage'
]).
to
include
({
'name'
=>
name
,
'path'
=>
params
.
legacy_disk_path
})
end
end
end
end
end
end
...
...
spec/tasks/gitlab/shell_rake_spec.rb
View file @
f4eb9901
...
@@ -11,7 +11,7 @@ describe 'gitlab:shell rake tasks' do
...
@@ -11,7 +11,7 @@ describe 'gitlab:shell rake tasks' do
it
'invokes create_hooks task'
do
it
'invokes create_hooks task'
do
expect
(
Rake
::
Task
[
'gitlab:shell:create_hooks'
]).
to
receive
(
:invoke
)
expect
(
Rake
::
Task
[
'gitlab:shell:create_hooks'
]).
to
receive
(
:invoke
)
storages
=
Gitlab
.
config
.
repositories
.
storages
.
values
.
map
{
|
rs
|
rs
[
'path'
]
}
storages
=
Gitlab
.
config
.
repositories
.
storages
.
values
.
map
(
&
:legacy_disk_path
)
expect
(
Kernel
).
to
receive
(
:system
).
with
(
'bin/install'
,
*
storages
).
and_call_original
expect
(
Kernel
).
to
receive
(
:system
).
with
(
'bin/install'
,
*
storages
).
and_call_original
expect
(
Kernel
).
to
receive
(
:system
).
with
(
'bin/compile'
).
and_call_original
expect
(
Kernel
).
to
receive
(
:system
).
with
(
'bin/compile'
).
and_call_original
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment