From 2f3c7998680fd1a2178a326ddc295ebc784cee2b Mon Sep 17 00:00:00 2001 From: Oren Kanner Date: Fri, 11 Jul 2014 02:57:23 -0400 Subject: [PATCH 1/7] replaced airbrake gem with party_foul and installed --- Gemfile | 2 +- Gemfile.lock | 15 +++++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/Gemfile b/Gemfile index ccb1540f3..212240374 100644 --- a/Gemfile +++ b/Gemfile @@ -91,5 +91,5 @@ end group :production, :staging do gem 'therubyracer', require: 'v8' - gem 'airbrake' + gem 'party_foul' end diff --git a/Gemfile.lock b/Gemfile.lock index b452b8933..27a5c5350 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -50,9 +50,6 @@ GEM i18n (~> 0.6, >= 0.6.4) multi_json (~> 1.0) addressable (2.3.5) - airbrake (3.1.14) - builder - json arbre (1.0.1) activesupport (>= 3.0.0) arel (3.0.3) @@ -127,6 +124,8 @@ GEM factory_girl_rails (4.2.1) factory_girl (~> 4.2.0) railties (>= 3.0.0) + faraday (0.9.0) + multipart-post (>= 1.2, < 3) fastercsv (1.5.5) ffaker (1.19.0) ffi (1.9.0) @@ -204,6 +203,7 @@ GEM mime-types (1.25.1) mini_portile (0.5.1) multi_json (1.10.1) + multipart-post (2.0.0) mysql2 (0.3.16) net-ldap (0.3.1) net-scp (1.1.2) @@ -218,6 +218,8 @@ GEM activesupport (>= 3.0.0) nokogiri (1.6.0) mini_portile (~> 0.5.0) + octokit (3.2.0) + sawyer (~> 0.5.3) orm_adapter (0.5.0) paperclip (3.5.1) activemodel (>= 3.0.0) @@ -227,6 +229,8 @@ GEM parallel (1.0.0) parallel_tests (1.0.0) parallel + party_foul (1.5.4) + octokit (~> 3.1) permanent_records (3.1.6) activerecord (>= 3.0.0) polyamorous (0.5.0) @@ -313,6 +317,9 @@ GEM railties (~> 3.2.0) sass (>= 3.1.10) tilt (~> 1.3) + sawyer (0.5.4) + addressable (~> 2.3.5) + faraday (~> 0.8, < 0.10) select2-rails (3.5.0) thor (~> 0.14) selenium-webdriver (2.35.1) @@ -375,7 +382,6 @@ PLATFORMS DEPENDENCIES activeadmin - airbrake awesome_print bootstrap-sass (~> 2.0.3) bullet @@ -406,6 +412,7 @@ DEPENDENCIES paper_trail! paperclip parallel_tests + party_foul permanent_records pry pry-byebug From 28b0de64e7a3f2c4b1baa4c3c080ca3947cfa3b6 Mon Sep 17 00:00:00 2001 From: Oren Kanner Date: Fri, 18 Jul 2014 02:22:20 -0400 Subject: [PATCH 2/7] added PartyFoul section to deploy script --- config/deploy.rb | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/config/deploy.rb b/config/deploy.rb index f87a97222..f95872871 100644 --- a/config/deploy.rb +++ b/config/deploy.rb @@ -63,6 +63,22 @@ put database_configuration, "#{shared_path}/config/database.yml" end + desc "Enter PartyFoul OAuth Token" + task :partyfoul do + set :oauth_token, Capistrano::CLI.us.ask("PartyFoul OAuth Token: ") + party_foul_initializer=<<-EOF +PartyFoul.configure do |config| + config.blacklisted_exceptions = ['ActiveRecord::RecordNotFound', 'ActionController::RoutingError'] + config.oauth_token = '#{oauth_token}' + config.api_endpoint = 'https://api.github.com' + config.web_url = 'https://github.com' + config.owner = 'YaleSTC' + config.repo = 'reservations' +end +EOF + put party_foul_initializer, "#{shared_path}/config/initializers/party_foul.rb" + end + desc "Enter Airbrake API code" task :airbrake do set :api_key, Capistrano::CLI.ui.ask("Airbrake API Key: ") From 921e490b334e7468d8e7c6159136cf1fbf914b9d Mon Sep 17 00:00:00 2001 From: Oren Kanner Date: Fri, 18 Jul 2014 02:35:12 -0400 Subject: [PATCH 3/7] removed airbrake from deploy.rb --- config/deploy.rb | 35 +++++++++-------------------------- 1 file changed, 9 insertions(+), 26 deletions(-) diff --git a/config/deploy.rb b/config/deploy.rb index f95872871..d0c8e1343 100644 --- a/config/deploy.rb +++ b/config/deploy.rb @@ -64,7 +64,7 @@ end desc "Enter PartyFoul OAuth Token" - task :partyfoul do + task :party_foul do set :oauth_token, Capistrano::CLI.us.ask("PartyFoul OAuth Token: ") party_foul_initializer=<<-EOF PartyFoul.configure do |config| @@ -76,20 +76,9 @@ config.repo = 'reservations' end EOF - put party_foul_initializer, "#{shared_path}/config/initializers/party_foul.rb" + put party_foul_initializer, "#{shared_path}/config/party_foul.rb" end - desc "Enter Airbrake API code" - task :airbrake do - set :api_key, Capistrano::CLI.ui.ask("Airbrake API Key: ") - airbrake_config=<<-EOF -Airbrake.configure do |config| - config.api_key = '#{api_key}' -end -EOF - put airbrake_config, "#{shared_path}/config/airbrake.rb" - end - task :prefix_initializer do prefix_config_file =<<-EOF Reservations::Application.configure do @@ -107,22 +96,22 @@ task :localize, :roles => [:app] do run "ln -nsf #{shared_path}/config/database.yml #{release_path}/config/database.yml" - run "ln -nsf #{shared_path}/config/airbrake.rb #{release_path}/config/initializers/airbrake.rb" + run "ln -nsf #{shared_path}/config/party_foul.rb #{release_path}/config/initializers/party_foul.rb" run "ln -nsf #{shared_path}/config/prefix.rb #{release_path}/config/initializers/prefix.rb" - + run "mkdir -p #{shared_path}/log" run "ln -nsfF #{shared_path}/log/ #{release_path}/log" run "mkdir -p #{shared_path}/pids" - run "ln -nsfF #{shared_path}/pids/ #{release_path}/tmp/pids" + run "ln -nsfF #{shared_path}/pids/ #{release_path}/tmp/pids" run "mkdir -p #{shared_path}/sessions" run "ln -nsfF #{shared_path}/sessions/ #{release_path}/tmp/sessions" run "mkdir -p #{shared_path}/attachments" run "ln -nsfF #{shared_path}/attachments/ #{release_path}/public/attachments" - end - end + end + end end # == DATABASE ================================================================== @@ -162,7 +151,7 @@ desc "Create vhosts file for Passenger config" task :passenger_config, :roles => :app do run "sh -c \'echo \"RailsBaseURI /#{application_prefix}\" > #{apache_config_dir}/rails/rails_#{application}_#{application_prefix}.conf\'" - run "ln -s #{deploy_to}/current/public #{document_root}/#{application_prefix}" + run "ln -s #{deploy_to}/current/public #{document_root}/#{application_prefix}" end desc "Create database" @@ -196,16 +185,10 @@ end after "deploy:setup", "init:config:database" -after "deploy:setup", "init:config:airbrake" +after "deploy:setup", "init:config:party_foul" after "deploy:setup", "init:config:prefix_initializer" after "deploy:create_symlink", "init:config:localize" after "deploy:create_symlink", "deploy:update_crontab" after "deploy", "deploy:cleanup" after "deploy:migrations", "deploy:cleanup" before "deploy:assets:precompile", "init:config:localize" - -Dir[File.join(File.dirname(__FILE__), '..', 'vendor', 'gems', 'airbrake-*')].each do |vendored_notifier| - $: << File.join(vendored_notifier, 'lib') -end - -require 'airbrake/capistrano' From 5195b37961f417025a66e429342b7f48ccf60d76 Mon Sep 17 00:00:00 2001 From: Oren Kanner Date: Fri, 18 Jul 2014 02:47:06 -0400 Subject: [PATCH 4/7] added party_foul to production.rb --- config/environments/production.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/config/environments/production.rb b/config/environments/production.rb index d4388ceb0..0613e842a 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -65,4 +65,7 @@ # Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added) config.assets.precompile += %w(print.css) + + # set up PartyFoul + config.middleware.use('PartyFoul::Middleware') end From 9a283af1ae220983563e4c85510e85a0a45d88a2 Mon Sep 17 00:00:00 2001 From: Oren Kanner Date: Sat, 6 Sep 2014 23:42:01 -0400 Subject: [PATCH 5/7] deleted config/deploy.rb --- config/deploy.rb | 194 ----------------------------------------------- 1 file changed, 194 deletions(-) delete mode 100644 config/deploy.rb diff --git a/config/deploy.rb b/config/deploy.rb deleted file mode 100644 index d0c8e1343..000000000 --- a/config/deploy.rb +++ /dev/null @@ -1,194 +0,0 @@ -require 'bundler/capistrano' - -# == DEPLOYMENT DEFAULTS ========= -default_domain = ENV['DOMAIN'] ? ENV['DOMAIN'] : "ulua.its.yale.edu" -default_application_prefix = ENV['PREFIX'] ? ENV['PREFIX'] : "bmec" -default_branch = ENV['BRANCH'] ? ENV['BRANCH'] : "master" - -# == INITIAL CONFIG ============== -set :application, "reservations" -set :repository, "git://github.com/YaleSTC/reservations.git" -set :apache_config_dir, "/etc/httpd/conf.d" -set :document_root, "/var/www/html" - -set :user, "deploy" -set :runner, "deploy" -set :use_sudo, false - -set :domain, Capistrano::CLI.ui.ask("Deployment server hostname (default #{default_domain}): ") unless ENV['DOMAIN'] -set :application_prefix, Capistrano::CLI.ui.ask("Application prefix (default #{default_application_prefix}): ") unless ENV['PREFIX'] -set :branch, Capistrano::CLI.ui.ask("Deployment branch (default #{default_branch}): ") unless ENV['BRANCH'] - -#Set Variables to default if specified from command line or left blank -set :domain, default_domain if (ENV['DOMAIN'] || fetch(:domain) == "") -set :application_prefix, default_application_prefix if (ENV['PREFIX'] || fetch(:application_prefix) == "") -set :branch, default_branch if (ENV['BRANCH'] || fetch(:branch) == "") - -set :deploy_to, "/var/www/rails/#{application}/#{application_prefix}" - -set :scm, :git -set :scm_verbose, false - -role :app, "#{domain}" -role :web, "#{domain}" -role :db, "#{domain}", :primary => true - - -# == CONFIG ==================================================================== - -namespace :init do - namespace :config do - desc "Create database.yml" - task :database do - set :mysql_user, Capistrano::CLI.ui.ask("deployment host database user name: ") - set :mysql_pass, Capistrano::CLI.password_prompt("deployment host database password: ") - database_configuration =<<-EOF ---- -production: - adapter: mysql2 - database: #{application}_#{application_prefix}_production - host: localhost - username: #{mysql_user} - password: #{mysql_pass} - -staging: - adapter: mysql2 - database: #{application}_#{application_prefix}_staging - host: localhost - username: #{mysql_user} - password: #{mysql_pass} - -EOF - run "mkdir -p #{shared_path}/config" - put database_configuration, "#{shared_path}/config/database.yml" - end - - desc "Enter PartyFoul OAuth Token" - task :party_foul do - set :oauth_token, Capistrano::CLI.us.ask("PartyFoul OAuth Token: ") - party_foul_initializer=<<-EOF -PartyFoul.configure do |config| - config.blacklisted_exceptions = ['ActiveRecord::RecordNotFound', 'ActionController::RoutingError'] - config.oauth_token = '#{oauth_token}' - config.api_endpoint = 'https://api.github.com' - config.web_url = 'https://github.com' - config.owner = 'YaleSTC' - config.repo = 'reservations' -end -EOF - put party_foul_initializer, "#{shared_path}/config/party_foul.rb" - end - - task :prefix_initializer do - prefix_config_file =<<-EOF -Reservations::Application.configure do - config.action_controller.relative_url_root = '/#{application_prefix}' -end -EOF - - run "mkdir -p #{shared_path}/config" - put prefix_config_file, "#{shared_path}/config/prefix.rb" - end - - - - desc "Symlink shared configurations to current" - task :localize, :roles => [:app] do - - run "ln -nsf #{shared_path}/config/database.yml #{release_path}/config/database.yml" - run "ln -nsf #{shared_path}/config/party_foul.rb #{release_path}/config/initializers/party_foul.rb" - run "ln -nsf #{shared_path}/config/prefix.rb #{release_path}/config/initializers/prefix.rb" - - run "mkdir -p #{shared_path}/log" - run "ln -nsfF #{shared_path}/log/ #{release_path}/log" - - run "mkdir -p #{shared_path}/pids" - run "ln -nsfF #{shared_path}/pids/ #{release_path}/tmp/pids" - - run "mkdir -p #{shared_path}/sessions" - run "ln -nsfF #{shared_path}/sessions/ #{release_path}/tmp/sessions" - - run "mkdir -p #{shared_path}/attachments" - run "ln -nsfF #{shared_path}/attachments/ #{release_path}/public/attachments" - end - end -end - -# == DATABASE ================================================================== -# == BACKUP DB TASK - -namespace :db do - desc "Backup your Database to #{shared_path}/db_backups" - task :backup, :roles => :db, :only => {:primary => true} do - set :db_user, Capistrano::CLI.ui.ask("Database user: ") - set :db_pass, Capistrano::CLI.password_prompt("Database password: ") - now = Time.now - run "mkdir -p #{shared_path}/backup" - backup_time = [now.year,now.month,now.day,now.hour,now.min,now.sec].join('-') - set :backup_file, "#{shared_path}/backup/#{application}-snapshot-#{backup_time}.sql" - run "mysqldump --add-drop-table -u #{db_user} -p #{db_pass} #{application}_#{application_prefix}_production --opt | bzip2 -c > #{backup_file}.bz2" - end - -end - -#== DEPLOYMENT -#===================================================================== - -#before "deploy:migrate", "db:backup" -namespace :deploy do - - desc "Initializer. Runs setup, copies code, creates and migrates db, and starts app" - task :first, :roles => :app do - setup - create_db - update - init.config.localize - passenger_config - migrate - restart_apache - end - - desc "Create vhosts file for Passenger config" - task :passenger_config, :roles => :app do - run "sh -c \'echo \"RailsBaseURI /#{application_prefix}\" > #{apache_config_dir}/rails/rails_#{application}_#{application_prefix}.conf\'" - run "ln -s #{deploy_to}/current/public #{document_root}/#{application_prefix}" - end - - desc "Create database" - task :create_db, :roles => :app do - run "mysqladmin --user=root --password=#{mysql_pass} create #{application}_#{application_prefix}_production" - end - - task :start, :roles => :app do - run "touch #{current_release}/tmp/restart.txt" - end - - task :stop, :roles => :app do - # Do nothing. - end - - desc "Restart Application" - task :restart, :roles => :app do - run "touch #{current_release}/tmp/restart.txt" - end - - desc "Restart Apache" - task :restart_apache, :roles => :app do - run "#{sudo} /etc/init.d/httpd restart" - end - - desc "Update the crontab file" - task :update_crontab, :roles => :app do - run "cd #{release_path} && bundle exec whenever --update-crontab #{application}-#{application_prefix} --set 'rails_root=#{current_path}'" - end - -end - -after "deploy:setup", "init:config:database" -after "deploy:setup", "init:config:party_foul" -after "deploy:setup", "init:config:prefix_initializer" -after "deploy:create_symlink", "init:config:localize" -after "deploy:create_symlink", "deploy:update_crontab" -after "deploy", "deploy:cleanup" -after "deploy:migrations", "deploy:cleanup" -before "deploy:assets:precompile", "init:config:localize" From dc91c93438a8c0ae8b53d0a88ee4a7bf0d8a5c01 Mon Sep 17 00:00:00 2001 From: Oren Kanner Date: Sat, 6 Sep 2014 23:46:35 -0400 Subject: [PATCH 6/7] added placeholder initializer file --- config/initializers/party_foul.rb | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 config/initializers/party_foul.rb diff --git a/config/initializers/party_foul.rb b/config/initializers/party_foul.rb new file mode 100644 index 000000000..332014abc --- /dev/null +++ b/config/initializers/party_foul.rb @@ -0,0 +1,8 @@ +PartyFoul.configure do |config| +config.blacklisted_exceptions = ['ActiveRecord::RecordNotFound', 'ActionController::RoutingError'] +config.oauth_token = 'exampletoken' +config.api_endpoint = 'https://api.github.com' +config.web_url = 'https://github.com' +config.owner = 'YaleSTC' +config.repo = 'reservations' +end \ No newline at end of file From 6568de2a79cf78c0ffe23e79ebeaea8ff800d5b3 Mon Sep 17 00:00:00 2001 From: Oren Kanner Date: Sun, 7 Sep 2014 00:07:39 -0400 Subject: [PATCH 7/7] renamed party foul initializer so it won't load by default --- config/initializers/{party_foul.rb => party_foul.rb.example} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename config/initializers/{party_foul.rb => party_foul.rb.example} (100%) diff --git a/config/initializers/party_foul.rb b/config/initializers/party_foul.rb.example similarity index 100% rename from config/initializers/party_foul.rb rename to config/initializers/party_foul.rb.example