rails_pwnerer 0.6.24 → 0.6.25

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1,3 +1,5 @@
1
+ v0.6.25. Fixed impedance in frontends computations in the nginx and thin managers.
2
+
1
3
  v0.6.24. Implemented support for checking out from git.
2
4
 
3
5
  v0.6.23. Implemented frontends_per_core option as an alternative to frontends.
data/Manifest CHANGED
@@ -24,6 +24,7 @@ lib/pwnage/base/rails.rb
24
24
  lib/pwnage/base/startup.rb
25
25
  lib/pwnage/base.rb
26
26
  lib/pwnage/config/app.rb
27
+ lib/pwnage/config/frontends.rb
27
28
  lib/pwnage/config/main.rb
28
29
  lib/pwnage/config/paths.rb
29
30
  lib/pwnage/config/ports.rb
@@ -23,22 +23,10 @@ class RailsPwnage::App::ClusterConfig
23
23
  end
24
24
  end
25
25
  end
26
-
27
- # computes the number of frontends to bring up / down
28
- def num_frontends(app_name, instance_name)
29
- app_config = RailsPwnage::Config[app_name, instance_name]
30
- return nil unless app_config and fixed_frontends = app_config[:frontends]
31
-
32
- if app_config[:frontends_per_core]
33
- cores_frontends = app_config[:frontends_per_core] * app_config[:detected_cores]
34
- return cores_frontends unless cores_frontends == 0
35
- end
36
- return fixed_frontends
37
- end
38
-
26
+
39
27
  def manage_ports(app_name, instance_name, action)
40
28
  app_config = RailsPwnage::Config[app_name, instance_name]
41
- return unless frontends = num_frontends(app_name, instance_name)
29
+ return unless frontends = RailsPwnage::Config.app_frontends(app_name, instance_name)
42
30
 
43
31
  case action
44
32
  when :alloc
@@ -56,8 +44,8 @@ class RailsPwnage::App::ClusterConfig
56
44
  # silently die if the app was completely busted
57
45
  return unless app_config and File.exists? app_config[:app_path]
58
46
 
59
- app_path = app_config[:app_path]
60
- frontends, first_port = num_frontends(app_name, instance_name), app_config[:port0]
47
+ app_path, first_port = app_config[:app_path], app_config[:port0]
48
+ frontends = RailsPwnage::Config.app_frontends(app_name, instance_name)
61
49
 
62
50
  cmdline_patterns = ['thin', nil]
63
51
 
@@ -81,8 +69,8 @@ class RailsPwnage::App::ClusterConfig
81
69
 
82
70
  app_path, pwnerer_user = app_config[:app_path], app_config[:pwnerer_user]
83
71
  pwnerer_group = group_for_username(pwnerer_user)
84
- frontends, first_port = num_frontends(app_name, instance_name), app_config[:port0]
85
- environment = app_config[:environment]
72
+ frontends = RailsPwnage::Config.app_frontends(app_name, instance_name)
73
+ first_port, environment = app_config[:port0], app_config[:environment]
86
74
 
87
75
  stop app_name, instance_name
88
76
 
@@ -13,6 +13,7 @@ class RailsPwnage::App::Git
13
13
 
14
14
  # clean up the application directory by removing caches
15
15
  def cleanup_app_caches(app_name, instance_name, app_name_is_dir = false)
16
+ # TODO: this is almost-duplicated in git.rb -- pull up somewhere
16
17
  app_path = app_name_is_dir ? app_name : RailsPwnage::Config[app_name, instance_name][:app_path]
17
18
  return unless File.exists?(File.join(app_path, '.git'))
18
19
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  class RailsPwnage::App::NginxConfig
4
4
  include RailsPwnage::Base
5
-
5
+
6
6
  # writes the nginx configuration for this server
7
7
  def config_nginx(app_name, instance_name)
8
8
  app_config = RailsPwnage::Config[app_name, instance_name]
@@ -10,11 +10,12 @@ class RailsPwnage::App::NginxConfig
10
10
  dns_name = app_config[:dns_name]
11
11
  app_port = app_config[:port] || 80
12
12
 
13
- nginx_config = File.join(RailsPwnage::Config.path_to(:nginx_configs), app_name + '.' + instance_name)
13
+ nginx_config = File.join(RailsPwnage::Config.path_to(:nginx_configs),
14
+ app_name + '.' + instance_name)
14
15
  File.open(nginx_config, 'w') do |f|
15
16
  # link to the frontends
16
17
  f << " upstream #{app_name}_#{instance_name} {\n"
17
- app_config[:frontends].times do |instance|
18
+ RailsPwnage::Config.app_frontends(app_name, instance_name).times do |instance|
18
19
  f << " server 127.0.0.1:#{first_port + instance};\n"
19
20
  end
20
21
  f << " }\n\n"
@@ -26,6 +26,7 @@ class RailsPwnage::App::Svn
26
26
 
27
27
  # clean up the application directory by removing caches
28
28
  def cleanup_app_caches(app_name, instance_name, app_name_is_dir = false)
29
+ # TODO: this is almost-duplicated in git.rb -- pull up somewhere
29
30
  app_path = app_name_is_dir ? app_name : RailsPwnage::Config[app_name, instance_name][:app_path]
30
31
  return unless File.exists?(File.join(app_path, '.svn'))
31
32
 
@@ -0,0 +1,15 @@
1
+ # computes the number of frontends to be used in an application
2
+
3
+ module RailsPwnage::Config
4
+ # the number of frontends for an application
5
+ def self.app_frontends(app_name, instance_name)
6
+ # TODO: this is duplicated in cluster_config.rb -- pull up somewhere
7
+ app_config = self[app_name, instance_name]
8
+ return nil unless app_config and fixed_frontends = app_config[:frontends]
9
+
10
+ frontends_per_core = app_config[:frontends_per_core] || 0
11
+ detected_cores = app_config[:detected_cores] || 0
12
+ cores_frontends = frontends_per_core * detected_cores
13
+ return (cores_frontends != 0) ? cores_frontends : fixed_frontends
14
+ end
15
+ end
@@ -28,6 +28,9 @@ class RailsPwnage::Scaffolds::Packages
28
28
  # needed by rmagick which does image processing
29
29
  install_packages %w(libmagick9-dev), :source => true
30
30
 
31
+ # needed by xml parsers
32
+ install_packages %w(libxml2-dev libxslt1-dev)
33
+
31
34
  # needed by sqlite-3 ruby gem in tools
32
35
  install_packages %w(libsqlite3-0 libsqlite3-dev sqlite3), :source => true
33
36
 
data/lib/rails_pwnerer.rb CHANGED
@@ -26,6 +26,7 @@ require 'pwnage/util/main.rb'
26
26
  require 'pwnage/util/kill_process_set.rb'
27
27
 
28
28
  require 'pwnage/config/app.rb'
29
+ require 'pwnage/config/frontends.rb'
29
30
  require 'pwnage/config/main.rb'
30
31
  require 'pwnage/config/paths.rb'
31
32
  require 'pwnage/config/ports.rb'
@@ -2,18 +2,18 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{rails_pwnerer}
5
- s.version = "0.6.24"
5
+ s.version = "0.6.25"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Victor Costan"]
9
- s.date = %q{2008-12-31}
9
+ s.date = %q{2009-01-02}
10
10
  s.default_executable = %q{bin/rpwn}
11
11
  s.description = %q{Rails deployment tool/hack.}
12
12
  s.email = %q{victor@costan.us}
13
13
  s.executables = ["rpwn", "rpwnctl", "rpwndev"]
14
14
  s.extensions = ["ext/rpwn_setup_notice/extconf.rb"]
15
- s.extra_rdoc_files = ["bin/rpwn", "bin/rpwnctl", "bin/rpwndev", "CHANGELOG", "ext/rpwn_setup_notice/extconf.rb", "lib/pwnage/app/cluster_config.rb", "lib/pwnage/app/config.rb", "lib/pwnage/app/database.rb", "lib/pwnage/app/files.rb", "lib/pwnage/app/gems.rb", "lib/pwnage/app/git.rb", "lib/pwnage/app/main.rb", "lib/pwnage/app/nginx_config.rb", "lib/pwnage/app/scripts.rb", "lib/pwnage/app/svn.rb", "lib/pwnage/base/atomics.rb", "lib/pwnage/base/cpus.rb", "lib/pwnage/base/dirs.rb", "lib/pwnage/base/gems.rb", "lib/pwnage/base/hostname.rb", "lib/pwnage/base/packages.rb", "lib/pwnage/base/process.rb", "lib/pwnage/base/rails.rb", "lib/pwnage/base/startup.rb", "lib/pwnage/base.rb", "lib/pwnage/config/app.rb", "lib/pwnage/config/main.rb", "lib/pwnage/config/paths.rb", "lib/pwnage/config/ports.rb", "lib/pwnage/config/repository.rb", "lib/pwnage/ctl_executor.rb", "lib/pwnage/dev_executor.rb", "lib/pwnage/executor.rb", "lib/pwnage/scaffolds/config.rb", "lib/pwnage/scaffolds/dir_permissions.rb", "lib/pwnage/scaffolds/dirs.rb", "lib/pwnage/scaffolds/gems.rb", "lib/pwnage/scaffolds/hook_daemon.rb", "lib/pwnage/scaffolds/hook_dyndns.rb", "lib/pwnage/scaffolds/mysql_config.rb", "lib/pwnage/scaffolds/packages.rb", "lib/pwnage/scaffolds/rubygems.rb", "lib/pwnage/scaffolds/sshd.rb", "lib/pwnage/util/kill_process_set.rb", "lib/pwnage/util/main.rb", "lib/rails_pwnerer.rb", "LICENSE", "README"]
16
- s.files = ["bin/rpwn", "bin/rpwnctl", "bin/rpwndev", "CHANGELOG", "ext/rpwn_setup_notice/extconf.rb", "lib/pwnage/app/cluster_config.rb", "lib/pwnage/app/config.rb", "lib/pwnage/app/database.rb", "lib/pwnage/app/files.rb", "lib/pwnage/app/gems.rb", "lib/pwnage/app/git.rb", "lib/pwnage/app/main.rb", "lib/pwnage/app/nginx_config.rb", "lib/pwnage/app/scripts.rb", "lib/pwnage/app/svn.rb", "lib/pwnage/base/atomics.rb", "lib/pwnage/base/cpus.rb", "lib/pwnage/base/dirs.rb", "lib/pwnage/base/gems.rb", "lib/pwnage/base/hostname.rb", "lib/pwnage/base/packages.rb", "lib/pwnage/base/process.rb", "lib/pwnage/base/rails.rb", "lib/pwnage/base/startup.rb", "lib/pwnage/base.rb", "lib/pwnage/config/app.rb", "lib/pwnage/config/main.rb", "lib/pwnage/config/paths.rb", "lib/pwnage/config/ports.rb", "lib/pwnage/config/repository.rb", "lib/pwnage/ctl_executor.rb", "lib/pwnage/dev_executor.rb", "lib/pwnage/executor.rb", "lib/pwnage/scaffolds/config.rb", "lib/pwnage/scaffolds/dir_permissions.rb", "lib/pwnage/scaffolds/dirs.rb", "lib/pwnage/scaffolds/gems.rb", "lib/pwnage/scaffolds/hook_daemon.rb", "lib/pwnage/scaffolds/hook_dyndns.rb", "lib/pwnage/scaffolds/mysql_config.rb", "lib/pwnage/scaffolds/packages.rb", "lib/pwnage/scaffolds/rubygems.rb", "lib/pwnage/scaffolds/sshd.rb", "lib/pwnage/util/kill_process_set.rb", "lib/pwnage/util/main.rb", "lib/rails_pwnerer.rb", "LICENSE", "Manifest", "Rakefile", "README", "RUBYFORGE", "rails_pwnerer.gemspec"]
15
+ s.extra_rdoc_files = ["bin/rpwn", "bin/rpwnctl", "bin/rpwndev", "CHANGELOG", "ext/rpwn_setup_notice/extconf.rb", "lib/pwnage/app/cluster_config.rb", "lib/pwnage/app/config.rb", "lib/pwnage/app/database.rb", "lib/pwnage/app/files.rb", "lib/pwnage/app/gems.rb", "lib/pwnage/app/git.rb", "lib/pwnage/app/main.rb", "lib/pwnage/app/nginx_config.rb", "lib/pwnage/app/scripts.rb", "lib/pwnage/app/svn.rb", "lib/pwnage/base/atomics.rb", "lib/pwnage/base/cpus.rb", "lib/pwnage/base/dirs.rb", "lib/pwnage/base/gems.rb", "lib/pwnage/base/hostname.rb", "lib/pwnage/base/packages.rb", "lib/pwnage/base/process.rb", "lib/pwnage/base/rails.rb", "lib/pwnage/base/startup.rb", "lib/pwnage/base.rb", "lib/pwnage/config/app.rb", "lib/pwnage/config/frontends.rb", "lib/pwnage/config/main.rb", "lib/pwnage/config/paths.rb", "lib/pwnage/config/ports.rb", "lib/pwnage/config/repository.rb", "lib/pwnage/ctl_executor.rb", "lib/pwnage/dev_executor.rb", "lib/pwnage/executor.rb", "lib/pwnage/scaffolds/config.rb", "lib/pwnage/scaffolds/dir_permissions.rb", "lib/pwnage/scaffolds/dirs.rb", "lib/pwnage/scaffolds/gems.rb", "lib/pwnage/scaffolds/hook_daemon.rb", "lib/pwnage/scaffolds/hook_dyndns.rb", "lib/pwnage/scaffolds/mysql_config.rb", "lib/pwnage/scaffolds/packages.rb", "lib/pwnage/scaffolds/rubygems.rb", "lib/pwnage/scaffolds/sshd.rb", "lib/pwnage/util/kill_process_set.rb", "lib/pwnage/util/main.rb", "lib/rails_pwnerer.rb", "LICENSE", "README"]
16
+ s.files = ["bin/rpwn", "bin/rpwnctl", "bin/rpwndev", "CHANGELOG", "ext/rpwn_setup_notice/extconf.rb", "lib/pwnage/app/cluster_config.rb", "lib/pwnage/app/config.rb", "lib/pwnage/app/database.rb", "lib/pwnage/app/files.rb", "lib/pwnage/app/gems.rb", "lib/pwnage/app/git.rb", "lib/pwnage/app/main.rb", "lib/pwnage/app/nginx_config.rb", "lib/pwnage/app/scripts.rb", "lib/pwnage/app/svn.rb", "lib/pwnage/base/atomics.rb", "lib/pwnage/base/cpus.rb", "lib/pwnage/base/dirs.rb", "lib/pwnage/base/gems.rb", "lib/pwnage/base/hostname.rb", "lib/pwnage/base/packages.rb", "lib/pwnage/base/process.rb", "lib/pwnage/base/rails.rb", "lib/pwnage/base/startup.rb", "lib/pwnage/base.rb", "lib/pwnage/config/app.rb", "lib/pwnage/config/frontends.rb", "lib/pwnage/config/main.rb", "lib/pwnage/config/paths.rb", "lib/pwnage/config/ports.rb", "lib/pwnage/config/repository.rb", "lib/pwnage/ctl_executor.rb", "lib/pwnage/dev_executor.rb", "lib/pwnage/executor.rb", "lib/pwnage/scaffolds/config.rb", "lib/pwnage/scaffolds/dir_permissions.rb", "lib/pwnage/scaffolds/dirs.rb", "lib/pwnage/scaffolds/gems.rb", "lib/pwnage/scaffolds/hook_daemon.rb", "lib/pwnage/scaffolds/hook_dyndns.rb", "lib/pwnage/scaffolds/mysql_config.rb", "lib/pwnage/scaffolds/packages.rb", "lib/pwnage/scaffolds/rubygems.rb", "lib/pwnage/scaffolds/sshd.rb", "lib/pwnage/util/kill_process_set.rb", "lib/pwnage/util/main.rb", "lib/rails_pwnerer.rb", "LICENSE", "Manifest", "Rakefile", "README", "RUBYFORGE", "rails_pwnerer.gemspec"]
17
17
  s.has_rdoc = true
18
18
  s.homepage = %q{http://www.costan.us/rails_pwnage}
19
19
  s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Rails_pwnerer", "--main", "README"]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_pwnerer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.24
4
+ version: 0.6.25
5
5
  platform: ruby
6
6
  authors:
7
7
  - Victor Costan
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-12-31 00:00:00 -05:00
12
+ date: 2009-01-02 00:00:00 -05:00
13
13
  default_executable: bin/rpwn
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -57,6 +57,7 @@ extra_rdoc_files:
57
57
  - lib/pwnage/base/startup.rb
58
58
  - lib/pwnage/base.rb
59
59
  - lib/pwnage/config/app.rb
60
+ - lib/pwnage/config/frontends.rb
60
61
  - lib/pwnage/config/main.rb
61
62
  - lib/pwnage/config/paths.rb
62
63
  - lib/pwnage/config/ports.rb
@@ -106,6 +107,7 @@ files:
106
107
  - lib/pwnage/base/startup.rb
107
108
  - lib/pwnage/base.rb
108
109
  - lib/pwnage/config/app.rb
110
+ - lib/pwnage/config/frontends.rb
109
111
  - lib/pwnage/config/main.rb
110
112
  - lib/pwnage/config/paths.rb
111
113
  - lib/pwnage/config/ports.rb