rails_pwnerer 0.6.24 → 0.6.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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