Merge branch 'gitaly-700-wiki-update-page' into 'master'
Migrate GitLab::Git::Wiki.update_page to Gitaly Closes gitaly#700 See merge request gitlab-org/gitlab-ce!15268
This commit is contained in:
commit
ce06415cb6
3 changed files with 46 additions and 6 deletions
|
@ -1 +1 @@
|
|||
0.51.0
|
||||
0.52.0
|
||||
|
|
|
@ -48,11 +48,14 @@ module Gitlab
|
|||
end
|
||||
|
||||
def update_page(page_path, title, format, content, commit_details)
|
||||
assert_type!(format, Symbol)
|
||||
assert_type!(commit_details, CommitDetails)
|
||||
|
||||
gollum_wiki.update_page(gollum_page_by_path(page_path), title, format, content, commit_details.to_h)
|
||||
nil
|
||||
@repository.gitaly_migrate(:wiki_update_page) do |is_enabled|
|
||||
if is_enabled
|
||||
gitaly_update_page(page_path, title, format, content, commit_details)
|
||||
gollum_wiki.clear_cache
|
||||
else
|
||||
gollum_update_page(page_path, title, format, content, commit_details)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def pages
|
||||
|
@ -149,6 +152,14 @@ module Gitlab
|
|||
nil
|
||||
end
|
||||
|
||||
def gollum_update_page(page_path, title, format, content, commit_details)
|
||||
assert_type!(format, Symbol)
|
||||
assert_type!(commit_details, CommitDetails)
|
||||
|
||||
gollum_wiki.update_page(gollum_page_by_path(page_path), title, format, content, commit_details.to_h)
|
||||
nil
|
||||
end
|
||||
|
||||
def gollum_find_page(title:, version: nil, dir: nil)
|
||||
if version
|
||||
version = Gitlab::Git::Commit.find(@repository, version).id
|
||||
|
@ -172,6 +183,10 @@ module Gitlab
|
|||
gitaly_wiki_client.write_page(name, format, content, commit_details)
|
||||
end
|
||||
|
||||
def gitaly_update_page(page_path, title, format, content, commit_details)
|
||||
gitaly_wiki_client.update_page(page_path, title, format, content, commit_details)
|
||||
end
|
||||
|
||||
def gitaly_delete_page(page_path, commit_details)
|
||||
gitaly_wiki_client.delete_page(page_path, commit_details)
|
||||
end
|
||||
|
|
|
@ -37,6 +37,31 @@ module Gitlab
|
|||
end
|
||||
end
|
||||
|
||||
def update_page(page_path, title, format, content, commit_details)
|
||||
request = Gitaly::WikiUpdatePageRequest.new(
|
||||
repository: @gitaly_repo,
|
||||
page_path: GitalyClient.encode(page_path),
|
||||
title: GitalyClient.encode(title),
|
||||
format: format.to_s,
|
||||
commit_details: gitaly_commit_details(commit_details)
|
||||
)
|
||||
|
||||
strio = StringIO.new(content)
|
||||
|
||||
enum = Enumerator.new do |y|
|
||||
until strio.eof?
|
||||
chunk = strio.read(MAX_MSG_SIZE)
|
||||
request.content = GitalyClient.encode(chunk)
|
||||
|
||||
y.yield request
|
||||
|
||||
request = Gitaly::WikiUpdatePageRequest.new
|
||||
end
|
||||
end
|
||||
|
||||
GitalyClient.call(@repository.storage, :wiki_service, :wiki_update_page, enum)
|
||||
end
|
||||
|
||||
def delete_page(page_path, commit_details)
|
||||
request = Gitaly::WikiDeletePageRequest.new(
|
||||
repository: @gitaly_repo,
|
||||
|
|
Loading…
Reference in a new issue