Merge pull request #2323 from riyad/rename-tasks

Rename tasks
This commit is contained in:
Dmitriy Zaporozhets 2012-12-20 13:06:14 -08:00
commit 9b07ed0690
11 changed files with 135 additions and 112 deletions

View file

@ -4,7 +4,7 @@ Creates a backup archive of the database and all repositories. This archive will
The filename will be `[TIMESTAMP]_gitlab_backup.tar`. This timestamp can be used to restore an specific backup. The filename will be `[TIMESTAMP]_gitlab_backup.tar`. This timestamp can be used to restore an specific backup.
``` ```
bundle exec rake gitlab:app:backup_create bundle exec rake gitlab:backup:create
``` ```
Example output: Example output:
@ -40,7 +40,7 @@ Deleting old backups... [SKIPPING]
### Restore a previously created backup ### Restore a previously created backup
``` ```
bundle exec rake gitlab:app:backup_restore bundle exec rake gitlab:backup:restore
``` ```
Options: Options:

View file

@ -1,6 +1,6 @@
### Enable usernames and namespaces for user projects ### Enable usernames and namespaces for user projects
This command will enable the namespace feature introduced in v4.0. It will move every project in its namespace folder. This command will enable the namespaces feature introduced in v4.0. It will move every project in its namespace folder.
Note: Note:
@ -13,7 +13,7 @@ Old path: `git@example.org:myrepo.git`
New path: `git@example.org:username/myrepo.git` or `git@example.org:groupname/myrepo.git` New path: `git@example.org:username/myrepo.git` or `git@example.org:groupname/myrepo.git`
``` ```
bundle exec rake gitlab:activate_namespaces bundle exec rake gitlab:enable_namespaces
``` ```
@ -22,7 +22,7 @@ bundle exec rake gitlab:activate_namespaces
This command will enable the auto merge feature. After this you will be able to **merge a merge request** via GitLab and use the **online editor**. This command will enable the auto merge feature. After this you will be able to **merge a merge request** via GitLab and use the **online editor**.
``` ```
bundle exec rake gitlab:app:enable_automerge bundle exec rake gitlab:enable_automerge
``` ```
Example output: Example output:

View file

@ -139,6 +139,16 @@ Checking GitLab ... Finished
``` ```
### (Re-)Create satellite repos
This will create satellite repos for all your projects.
If necessary, remove the `tmp/repo_satellites` directory and rerun the command below.
```
bundle exec rake gitlab:satellites:create
```
### Rebuild each key at gitolite config ### Rebuild each key at gitolite config
This will send all users ssh public keys to gitolite and grant them access (based on their permission) to their projects. This will send all users ssh public keys to gitolite and grant them access (based on their permission) to their projects.

View file

@ -1,7 +1,7 @@
### Add user to as a developer to all projects ### Add user to as a developer to all projects
``` ```
bundle exec rake add_user_to_project_teams[username@domain.tld] bundle exec rake gitlab:import:user_to_projects[username@domain.tld]
``` ```
@ -12,5 +12,5 @@ Notes:
* admin users are added as masters * admin users are added as masters
``` ```
bundle exec rake add_users_to_project_teams bundle exec rake gitlab:import:all_users_to_all_projects
``` ```

View file

@ -1,20 +0,0 @@
desc "Add all users to all projects (admin users are added as masters)"
task :add_users_to_project_teams => :environment do |t, args|
user_ids = User.where(:admin => false).pluck(:id)
admin_ids = User.where(:admin => true).pluck(:id)
Project.find_each do |project|
puts "Importing #{user_ids.size} users into #{project.code}"
UsersProject.bulk_import(project, user_ids, UsersProject::DEVELOPER)
puts "Importing #{admin_ids.size} admins into #{project.code}"
UsersProject.bulk_import(project, admin_ids, UsersProject::MASTER)
end
end
desc "Add user to as a developer to all projects"
task :add_user_to_project_teams, [:email] => :environment do |t, args|
user = User.find_by_email args.email
project_ids = Project.pluck(:id)
UsersProject.user_bulk_import(user, project_ids, UsersProject::DEVELOPER)
end

View file

@ -1,12 +1,12 @@
require 'active_record/fixtures' require 'active_record/fixtures'
namespace :gitlab do namespace :gitlab do
namespace :app do namespace :backup do
# Create backup of GitLab system # Create backup of GitLab system
desc "GITLAB | Create a backup of the GitLab system" desc "GITLAB | Create a backup of the GitLab system"
task :backup_create => :environment do task :create => :environment do
Rake::Task["gitlab:app:db_dump"].invoke Rake::Task["gitlab:backup:db:create"].invoke
Rake::Task["gitlab:app:repo_dump"].invoke Rake::Task["gitlab:backup:repo:create"].invoke
Dir.chdir(Gitlab.config.backup.path) Dir.chdir(Gitlab.config.backup.path)
@ -54,7 +54,7 @@ namespace :gitlab do
# Restore backup of GitLab system # Restore backup of GitLab system
desc "GITLAB | Restore a previously created backup" desc "GITLAB | Restore a previously created backup"
task :backup_restore => :environment do task :restore => :environment do
Dir.chdir(Gitlab.config.backup.path) Dir.chdir(Gitlab.config.backup.path)
# check for existing backups in the backup dir # check for existing backups in the backup dir
@ -62,7 +62,7 @@ namespace :gitlab do
puts "no backups found" if file_list.count == 0 puts "no backups found" if file_list.count == 0
if file_list.count > 1 && ENV["BACKUP"].nil? if file_list.count > 1 && ENV["BACKUP"].nil?
puts "Found more than one backup, please specify which one you want to restore:" puts "Found more than one backup, please specify which one you want to restore:"
puts "rake gitlab:app:backup_restore BACKUP=timestamp_of_backup" puts "rake gitlab:backup:restore BACKUP=timestamp_of_backup"
exit 1; exit 1;
end end
@ -93,8 +93,8 @@ namespace :gitlab do
exit 1 exit 1
end end
Rake::Task["gitlab:app:db_restore"].invoke Rake::Task["gitlab:backup:db:restore"].invoke
Rake::Task["gitlab:app:repo_restore"].invoke Rake::Task["gitlab:backup:repo:restore"].invoke
# cleanup: remove tmp files # cleanup: remove tmp files
print "Deleting tmp directories..." print "Deleting tmp directories..."
@ -110,7 +110,8 @@ namespace :gitlab do
################################# REPOSITORIES ################################# ################################# REPOSITORIES #################################
task :repo_dump => :environment do namespace :repo do
task :create => :environment do
backup_path_repo = File.join(Gitlab.config.backup.path, "repositories") backup_path_repo = File.join(Gitlab.config.backup.path, "repositories")
FileUtils.mkdir_p(backup_path_repo) until Dir.exists?(backup_path_repo) FileUtils.mkdir_p(backup_path_repo) until Dir.exists?(backup_path_repo)
puts "Dumping repositories:" puts "Dumping repositories:"
@ -126,7 +127,7 @@ namespace :gitlab do
end end
end end
task :repo_restore => :environment do task :restore => :environment do
backup_path_repo = File.join(Gitlab.config.backup.path, "repositories") backup_path_repo = File.join(Gitlab.config.backup.path, "repositories")
puts "Restoring repositories:" puts "Restoring repositories:"
project = Project.all.map { |n| [n.path, n.path_to_repo] } project = Project.all.map { |n| [n.path, n.path_to_repo] }
@ -136,8 +137,8 @@ namespace :gitlab do
FileUtils.rm_rf(project.second) if File.dirname(project.second) # delete old stuff FileUtils.rm_rf(project.second) if File.dirname(project.second) # delete old stuff
if Kernel.system("cd #{File.dirname(project.second)} > /dev/null 2>&1 && git clone --bare #{backup_path_repo}/#{project.first}.bundle #{project.first}.git > /dev/null 2>&1") if Kernel.system("cd #{File.dirname(project.second)} > /dev/null 2>&1 && git clone --bare #{backup_path_repo}/#{project.first}.bundle #{project.first}.git > /dev/null 2>&1")
permission_commands = [ permission_commands = [
"sudo chmod -R g+rwX #{Gitlab.config.gitolite.repos_path}", "sudo chmod -R g+rwX #{Gitlab.config.git_base_path}",
"sudo chown -R #{Gitlab.config.gitolite.ssh_user}:#{Gitlab.config.gitolite.ssh_user} #{Gitlab.config.gitolite.repos_path}" "sudo chown -R #{Gitlab.config.ssh_user}:#{Gitlab.config.ssh_user} #{Gitlab.config.git_base_path}"
] ]
permission_commands.each { |command| Kernel.system(command) } permission_commands.each { |command| Kernel.system(command) }
puts "[DONE]".green puts "[DONE]".green
@ -146,10 +147,12 @@ namespace :gitlab do
end end
end end
end end
end
###################################### DB ###################################### ###################################### DB ######################################
task :db_dump => :environment do namespace :db do
task :create => :environment do
backup_path_db = File.join(Gitlab.config.backup.path, "db") backup_path_db = File.join(Gitlab.config.backup.path, "db")
FileUtils.mkdir_p(backup_path_db) unless Dir.exists?(backup_path_db) FileUtils.mkdir_p(backup_path_db) unless Dir.exists?(backup_path_db)
@ -169,7 +172,7 @@ namespace :gitlab do
end end
end end
task :db_restore=> :environment do task :restore=> :environment do
backup_path_db = File.join(Gitlab.config.backup.path, "db") backup_path_db = File.join(Gitlab.config.backup.path, "db")
puts "Restoring database tables:" puts "Restoring database tables:"
@ -186,6 +189,7 @@ namespace :gitlab do
end end
end end
end end
end
end # namespace end: app end # namespace end: backup
end # namespace end: gitlab end # namespace end: gitlab

View file

@ -0,0 +1,24 @@
namespace :gitlab do
namespace :import do
desc "GITLAB | Add all users to all projects (admin users are added as masters)"
task :all_users_to_all_projects => :environment do |t, args|
user_ids = User.where(:admin => false).pluck(:id)
admin_ids = User.where(:admin => true).pluck(:id)
Project.find_each do |project|
puts "Importing #{user_ids.size} users into #{project.code}"
UsersProject.bulk_import(project, user_ids, UsersProject::DEVELOPER)
puts "Importing #{admin_ids.size} admins into #{project.code}"
UsersProject.bulk_import(project, admin_ids, UsersProject::MASTER)
end
end
desc "GITLAB | Add a specific user to all projects (as a developer)"
task :user_to_projects, [:email] => :environment do |t, args|
user = User.find_by_email args.email
project_ids = Project.pluck(:id)
UsersProject.user_bulk_import(user, project_ids, UsersProject::DEVELOPER)
end
end
end

View file

@ -192,7 +192,9 @@ namespace :gitlab do
else else
puts "no".red puts "no".red
try_fixing_it( try_fixing_it(
"sudo -u gitlab -H bundle exec rake gitlab:app:enable_automerge" "sudo -u gitlab -H bundle exec rake gitlab:satellites:create",
"If necessary, remove the tmp/repo_satellites directory ...",
"... and rerun the above command"
) )
for_more_information( for_more_information(
"doc/raketasks/maintenance.md " "doc/raketasks/maintenance.md "

View file

@ -1,5 +1,4 @@
namespace :gitlab do namespace :gitlab do
namespace :app do
desc "GITLAB | Enable auto merge" desc "GITLAB | Enable auto merge"
task :enable_automerge => :environment do task :enable_automerge => :environment do
Gitlab::Gitolite.new.enable_automerge Gitlab::Gitolite.new.enable_automerge
@ -13,5 +12,9 @@ namespace :gitlab do
puts "Done!".green puts "Done!".green
end end
namespace :satellites do
desc "GITLAB | Create satellite repos"
task create: 'gitlab:enable_automerge'
end end
end end

View file

@ -1,6 +1,6 @@
namespace :gitlab do namespace :gitlab do
desc "GITLAB | Enable usernames and namespaces for user projects" desc "GITLAB | Enable usernames and namespaces for user projects"
task activate_namespaces: :environment do task enable_namespaces: :environment do
print "\nUsernames for users:".yellow print "\nUsernames for users:".yellow
User.find_each(batch_size: 500) do |user| User.find_each(batch_size: 500) do |user|

View file

@ -4,7 +4,7 @@ namespace :gitlab do
task :setup => [ task :setup => [
'db:setup', 'db:setup',
'db:seed_fu', 'db:seed_fu',
'gitlab:app:enable_automerge' 'gitlab:enable_automerge'
] ]
end end
end end