circus-deployment 0.0.1 → 0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/bundler/circus_util.rb +1 -2
- data/lib/bundler/gem_cacher.rb +46 -0
- data/lib/circus.rb +2 -1
- data/lib/circus/act.rb +29 -6
- data/lib/circus/application.rb +49 -6
- data/lib/circus/booth_tool.rb +14 -1
- data/lib/circus/cli.rb +21 -2
- data/lib/circus/clown_client.rb +4 -0
- data/lib/circus/external_util.rb +10 -0
- data/lib/circus/processes/daemontools.rb +65 -0
- data/lib/circus/profiles.rb +2 -0
- data/lib/circus/profiles/base.rb +20 -1
- data/lib/circus/profiles/chef_stack.rb +75 -0
- data/lib/circus/profiles/make_base.rb +4 -1
- data/lib/circus/profiles/maven_webapp.rb +117 -0
- data/lib/circus/profiles/maven_webapp_jetty.xml.erb +74 -0
- data/lib/circus/profiles/maven_webapp_jetty_app.xml.erb +56 -0
- data/lib/circus/profiles/python_base.rb +5 -5
- data/lib/circus/profiles/rack.rb +11 -7
- data/lib/circus/profiles/ruby_base.rb +13 -4
- data/lib/circus/repos/git.rb +2 -1
- data/lib/circus/version.rb +1 -1
- metadata +106 -72
- data/lib/circus/agents/agent.rb +0 -59
- data/lib/circus/agents/logger.rb +0 -52
@@ -10,7 +10,10 @@ module Circus
|
|
10
10
|
|
11
11
|
def prepare_for_deploy(logger, overlay_dir)
|
12
12
|
# Build the application
|
13
|
-
|
13
|
+
if File.exists?(File.join(@dir, 'Makefile'))
|
14
|
+
logger.info("Compiling #{@name}")
|
15
|
+
run_external(logger, 'Compile application', "cd #{@dir}; make")
|
16
|
+
end
|
14
17
|
end
|
15
18
|
end
|
16
19
|
end
|
@@ -0,0 +1,117 @@
|
|
1
|
+
require 'rexml/document'
|
2
|
+
require 'erb'
|
3
|
+
|
4
|
+
module Circus
|
5
|
+
module Profiles
|
6
|
+
class MavenWebApp < Base
|
7
|
+
MAVEN_WEBAPP_PROPERTY='maven-webapp'
|
8
|
+
|
9
|
+
# Checks if this is a shell applcation. Will accept the application if it
|
10
|
+
# has a file named <name>.sh, or has a 'shell-app' property describing the entry point.
|
11
|
+
def self.accepts?(name, dir, props)
|
12
|
+
pom_path = File.join(dir, "pom.xml")
|
13
|
+
|
14
|
+
return true if props.include? MAVEN_WEBAPP_PROPERTY
|
15
|
+
return false unless File.exists?(pom_path)
|
16
|
+
|
17
|
+
pom_content = REXML::Document.new(File.new(pom_path))
|
18
|
+
packaging_el = pom_content.root.elements['packaging']
|
19
|
+
return false unless packaging_el
|
20
|
+
|
21
|
+
packaging_el.text.strip == 'war'
|
22
|
+
end
|
23
|
+
|
24
|
+
attr_reader :app_final_name
|
25
|
+
|
26
|
+
def initialize(name, dir, props)
|
27
|
+
super(name, dir, props)
|
28
|
+
|
29
|
+
@app_final_name = props[MAVEN_WEBAPP_PROPERTY] || detect_app_name
|
30
|
+
end
|
31
|
+
|
32
|
+
# The name of this profile
|
33
|
+
def name
|
34
|
+
"maven-war"
|
35
|
+
end
|
36
|
+
|
37
|
+
def dev_run_script_content
|
38
|
+
shell_run_script do
|
39
|
+
<<-EOT
|
40
|
+
cd #{@dir}
|
41
|
+
exec mvn jetty:run
|
42
|
+
EOT
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def prepare_for_deploy(logger, overlay_dir)
|
47
|
+
# Build the maven package, then copy the output into the overlay directory
|
48
|
+
logger.info("Building maven application #{@name}")
|
49
|
+
return false unless run_external(logger, 'Perform maven packaging', "cd #{@dir}; mvn package -Dmaven.test.skip=true")
|
50
|
+
|
51
|
+
logger.info("Expanding artifact #{app_final_name}.war")
|
52
|
+
final_full_path = File.expand_path("target/#{app_final_name}.war")
|
53
|
+
return false unless run_external(logger,
|
54
|
+
'Expand application artifact',
|
55
|
+
"mkdir #{overlay_dir}/#{@name} && unzip #{@dir}/target/#{app_final_name}.war -d #{overlay_dir}/#{@name}/")
|
56
|
+
|
57
|
+
logger.info("Generating configuration files for #{@name}")
|
58
|
+
write_template('maven_webapp_jetty.xml.erb', "#{overlay_dir}/jetty.xml")
|
59
|
+
write_template('maven_webapp_jetty_app.xml.erb', "#{overlay_dir}/jetty-app.xml")
|
60
|
+
File.open("#{overlay_dir}/jetty.properties", 'w') do |f|
|
61
|
+
f << "jetty.home=/opt/jetty-7.1"
|
62
|
+
end
|
63
|
+
|
64
|
+
true
|
65
|
+
end
|
66
|
+
|
67
|
+
def deploy_run_script_content
|
68
|
+
shell_run_script do
|
69
|
+
<<-EOT
|
70
|
+
exec java -jar /opt/jetty-7.1/start.jar -Djetty.home=/opt/jetty-7.1 OPTIONS=Server,plus,jndi `pwd`/jetty.properties `pwd`/jetty.xml `pwd`/jetty-app.xml
|
71
|
+
EOT
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
def package_base_dir?
|
76
|
+
false
|
77
|
+
end
|
78
|
+
|
79
|
+
private
|
80
|
+
def listen_port
|
81
|
+
@props['web-app-port'] || 8130
|
82
|
+
end
|
83
|
+
|
84
|
+
def amqp_connection_factories
|
85
|
+
@props['amqp-connections'] || []
|
86
|
+
end
|
87
|
+
def datasources
|
88
|
+
@props['datasources'] || []
|
89
|
+
end
|
90
|
+
def env_entries
|
91
|
+
@props['env-entries'] || []
|
92
|
+
end
|
93
|
+
|
94
|
+
def detect_app_name
|
95
|
+
effective_pom_path = "/tmp/#{name}-effective.pom"
|
96
|
+
`cd #{@dir}; mvn help:effective-pom -Doutput=#{effective_pom_path}`
|
97
|
+
unless $? == 0
|
98
|
+
raise "Failed to determine effective pom for maven webapp act #{name}"
|
99
|
+
end
|
100
|
+
|
101
|
+
pom_content = REXML::Document.new(File.new(effective_pom_path))
|
102
|
+
pom_content.root.elements['build/finalName'].text.strip
|
103
|
+
end
|
104
|
+
|
105
|
+
def write_template(template_name, out_name)
|
106
|
+
template_path = File.expand_path("../#{template_name}", __FILE__)
|
107
|
+
template_erb = ERB.new(File.read template_path)
|
108
|
+
template_erb.filename = template_path
|
109
|
+
File.open(out_name, 'w') do |f|
|
110
|
+
f.write(template_erb.result(binding))
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
PROFILES << MavenWebApp
|
116
|
+
end
|
117
|
+
end
|
@@ -0,0 +1,74 @@
|
|
1
|
+
<?xml version="1.0"?>
|
2
|
+
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
|
3
|
+
|
4
|
+
<!-- =============================================================== -->
|
5
|
+
<!-- Configure the Jetty Server -->
|
6
|
+
<!-- -->
|
7
|
+
<!-- Documentation of this file format can be found at: -->
|
8
|
+
<!-- http://wiki.eclipse.org/Jetty/Reference/jetty.xml_syntax -->
|
9
|
+
<!-- -->
|
10
|
+
<!-- Additional configuration files are available in $JETTY_HOME/etc -->
|
11
|
+
<!-- and can be mixed in. For example: -->
|
12
|
+
<!-- java -jar start.jar etc/jetty.xml etc/jetty-ssl.xml -->
|
13
|
+
<!-- -->
|
14
|
+
<!-- See start.ini file for the default configuraton files -->
|
15
|
+
<!-- =============================================================== -->
|
16
|
+
|
17
|
+
|
18
|
+
<Configure id="Server" class="org.eclipse.jetty.server.Server">
|
19
|
+
<!-- =========================================================== -->
|
20
|
+
<!-- Server Thread Pool -->
|
21
|
+
<!-- =========================================================== -->
|
22
|
+
<Set name="ThreadPool">
|
23
|
+
<!-- Default queued blocking threadpool -->
|
24
|
+
<New class="org.eclipse.jetty.util.thread.QueuedThreadPool">
|
25
|
+
<Set name="minThreads">10</Set>
|
26
|
+
<Set name="maxThreads">200</Set>
|
27
|
+
</New>
|
28
|
+
</Set>
|
29
|
+
|
30
|
+
<!-- =========================================================== -->
|
31
|
+
<!-- Set connectors -->
|
32
|
+
<!-- =========================================================== -->
|
33
|
+
|
34
|
+
<Call name="addConnector">
|
35
|
+
<Arg>
|
36
|
+
<New class="org.eclipse.jetty.server.nio.SelectChannelConnector">
|
37
|
+
<Set name="host"><Property name="jetty.host" /></Set>
|
38
|
+
<Set name="port"><%= listen_port %></Set>
|
39
|
+
<Set name="maxIdleTime">300000</Set>
|
40
|
+
<Set name="Acceptors">2</Set>
|
41
|
+
<Set name="statsOn">false</Set>
|
42
|
+
<!-- <Set name="confidentialPort">8443</Set> -->
|
43
|
+
<Set name="lowResourcesConnections">20000</Set>
|
44
|
+
<Set name="lowResourcesMaxIdleTime">5000</Set>
|
45
|
+
</New>
|
46
|
+
</Arg>
|
47
|
+
</Call>
|
48
|
+
|
49
|
+
<!-- =========================================================== -->
|
50
|
+
<!-- Set handler Collection Structure -->
|
51
|
+
<!-- =========================================================== -->
|
52
|
+
<Set name="handler">
|
53
|
+
<New id="Handlers" class="org.eclipse.jetty.server.handler.HandlerCollection">
|
54
|
+
<Set name="handlers">
|
55
|
+
<Array type="org.eclipse.jetty.server.Handler">
|
56
|
+
<Item>
|
57
|
+
<New id="Contexts" class="org.eclipse.jetty.server.handler.ContextHandlerCollection"/>
|
58
|
+
</Item>
|
59
|
+
<Item>
|
60
|
+
<New id="DefaultHandler" class="org.eclipse.jetty.server.handler.DefaultHandler"/>
|
61
|
+
</Item>
|
62
|
+
</Array>
|
63
|
+
</Set>
|
64
|
+
</New>
|
65
|
+
</Set>
|
66
|
+
|
67
|
+
<!-- =========================================================== -->
|
68
|
+
<!-- extra options -->
|
69
|
+
<!-- =========================================================== -->
|
70
|
+
<Set name="stopAtShutdown">true</Set>
|
71
|
+
<Set name="sendServerVersion">true</Set>
|
72
|
+
<Set name="sendDateHeader">true</Set>
|
73
|
+
<Set name="gracefulShutdown">1000</Set>
|
74
|
+
</Configure>
|
@@ -0,0 +1,56 @@
|
|
1
|
+
<?xml version="1.0"?>
|
2
|
+
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
|
3
|
+
<Configure id="Server" class="org.eclipse.jetty.server.Server">
|
4
|
+
<New class="org.eclipse.jetty.webapp.WebAppContext">
|
5
|
+
<Arg><Ref id="Contexts"/></Arg>
|
6
|
+
<Arg><%= @name %></Arg>
|
7
|
+
<Arg>/</Arg>
|
8
|
+
|
9
|
+
<Set name="ConfigurationClasses">
|
10
|
+
<Array type="java.lang.String">
|
11
|
+
<Item>org.eclipse.jetty.webapp.WebInfConfiguration</Item>
|
12
|
+
<Item>org.eclipse.jetty.webapp.WebXmlConfiguration</Item>
|
13
|
+
<Item>org.eclipse.jetty.webapp.MetaInfConfiguration</Item>
|
14
|
+
<Item>org.eclipse.jetty.webapp.FragmentConfiguration</Item>
|
15
|
+
<Item>org.eclipse.jetty.plus.webapp.EnvConfiguration</Item>
|
16
|
+
<Item>org.eclipse.jetty.plus.webapp.Configuration</Item>
|
17
|
+
<Item>org.eclipse.jetty.webapp.JettyWebXmlConfiguration</Item>
|
18
|
+
<Item>org.eclipse.jetty.webapp.TagLibConfiguration</Item>
|
19
|
+
</Array>
|
20
|
+
</Set>
|
21
|
+
|
22
|
+
<% amqp_connection_factories.each do |cf| %>
|
23
|
+
<New class="org.eclipse.jetty.plus.jndi.Resource">
|
24
|
+
<Arg></Arg>
|
25
|
+
<Arg><%= cf['name'] %></Arg>
|
26
|
+
<Arg>
|
27
|
+
<New class="com.rabbitmq.client.ConnectionFactory">
|
28
|
+
<Set name="host"><%= cf['host'] %></Set>
|
29
|
+
</New>
|
30
|
+
</Arg>
|
31
|
+
</New>
|
32
|
+
<% end %>
|
33
|
+
|
34
|
+
<% datasources.each do |ds| %>
|
35
|
+
<New class="org.eclipse.jetty.plus.jndi.Resource">
|
36
|
+
<Arg></Arg>
|
37
|
+
<Arg><%= ds['name'] %></Arg>
|
38
|
+
<Arg>
|
39
|
+
<New class="org.apache.commons.dbcp.BasicDataSource">
|
40
|
+
<Set name="driverClassName">org.postgresql.Driver</Set>
|
41
|
+
<Set name="url">jdbc:postgresql://localhost/<%= ds['db_name'] %>?user=<%= ds['db_user'] %>&password=<%= ds['db_password'] %></Set>
|
42
|
+
</New>
|
43
|
+
</Arg>
|
44
|
+
</New>
|
45
|
+
<% end %>
|
46
|
+
|
47
|
+
<% env_entries.each do |ee| %>
|
48
|
+
<New class="org.eclipse.jetty.plus.jndi.EnvEntry">
|
49
|
+
<Arg></Arg>
|
50
|
+
<Arg><%= ee['name'] %></Arg>
|
51
|
+
<Arg type="<%= ee['type'] %>"><%= ee['value']%></Arg>
|
52
|
+
<Arg type="boolean">true</Arg>
|
53
|
+
</New>
|
54
|
+
<% end %>
|
55
|
+
</New>
|
56
|
+
</Configure>
|
@@ -10,11 +10,11 @@ module Circus
|
|
10
10
|
|
11
11
|
def prepare_for_deploy(logger, overlay_dir)
|
12
12
|
# Build the virtualenv
|
13
|
-
|
14
|
-
unless
|
15
|
-
|
16
|
-
end
|
13
|
+
unless File.exists? "#{@dir}/vendor"
|
14
|
+
return false unless run_external(logger, "Create virtualenv", "cd #{@dir}; virtualenv --no-site-packages vendor")
|
15
|
+
end
|
17
16
|
|
17
|
+
if has_depsfile?
|
18
18
|
File.read(depsfile_fn).lines.each do |dep|
|
19
19
|
return false unless run_external(logger, "Install dep #{dep}",
|
20
20
|
"cd #{@dir}; vendor/bin/easy_install -q \"#{dep.strip}\"")
|
@@ -36,4 +36,4 @@ module Circus
|
|
36
36
|
end
|
37
37
|
end
|
38
38
|
end
|
39
|
-
end
|
39
|
+
end
|
data/lib/circus/profiles/rack.rb
CHANGED
@@ -35,17 +35,21 @@ module Circus
|
|
35
35
|
def deploy_run_script_content
|
36
36
|
shell_run_script do
|
37
37
|
<<-EOT
|
38
|
-
exec bundle exec
|
38
|
+
exec bundle exec thin -R #{@rackup_name} -p #{listen_port} start
|
39
39
|
EOT
|
40
40
|
end
|
41
41
|
end
|
42
42
|
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
43
|
+
# Describes the requirements of the deployed application. Rack applications automatically
|
44
|
+
# have an environment system property applied for RACK_ENV and RAILS_ENV
|
45
|
+
def requirements
|
46
|
+
res = super
|
47
|
+
|
48
|
+
res['system-properties'] ||= {}
|
49
|
+
res['system-properties']['RACK_ENV'] = 'production'
|
50
|
+
res['system-properties']['RAILS_ENV'] = 'production'
|
51
|
+
|
52
|
+
res
|
49
53
|
end
|
50
54
|
|
51
55
|
private
|
@@ -5,21 +5,30 @@ require 'bundler/circus_util'
|
|
5
5
|
module Circus
|
6
6
|
module Profiles
|
7
7
|
class RubyBase < Base
|
8
|
-
BUNDLER_TOOL=File.expand_path('../../../bundler/
|
8
|
+
BUNDLER_TOOL=File.expand_path('../../../bundler/gem_cacher.rb', __FILE__)
|
9
9
|
|
10
10
|
def initialize(name, dir, props)
|
11
11
|
super(name, dir, props)
|
12
12
|
end
|
13
13
|
|
14
|
-
#
|
14
|
+
# Do basic gemfile preparation for dev. Don't override dev_run_script_content, since it is the
|
15
15
|
# same as the deployment variant.
|
16
|
-
def prepare_for_dev(logger, run_dir)
|
16
|
+
def prepare_for_dev(logger, run_dir)
|
17
|
+
if has_gemfile?
|
18
|
+
# TODO: Correct behaviour if working in the presence of an existing bundler environment
|
19
|
+
run_external(logger, 'gem installation', "cd #{@dir}; bundle check || bundle install")
|
20
|
+
end
|
21
|
+
|
22
|
+
true
|
23
|
+
end
|
17
24
|
|
18
25
|
def prepare_for_deploy(logger, overlay_dir)
|
19
26
|
# Run the gem bundler if necessary
|
20
27
|
if has_gemfile?
|
21
28
|
logger.info("Bundling gems")
|
22
|
-
run_external(logger, 'gem
|
29
|
+
return false unless run_external(logger, 'gem installation', "cd #{@dir}; bundle install")
|
30
|
+
return false unless run_external(logger, 'gem caching',
|
31
|
+
"cd #{@dir}; ruby #{BUNDLER_TOOL} && rm Gemfile.lock && bundle install vendor/bundle")
|
23
32
|
end
|
24
33
|
|
25
34
|
true
|
data/lib/circus/repos/git.rb
CHANGED
data/lib/circus/version.rb
CHANGED
metadata
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: circus-deployment
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
+
hash: 15
|
4
5
|
prerelease: false
|
5
6
|
segments:
|
6
7
|
- 0
|
7
|
-
-
|
8
|
-
|
9
|
-
version: 0.0.1
|
8
|
+
- 2
|
9
|
+
version: "0.2"
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Paul Jones
|
@@ -14,16 +14,18 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-
|
17
|
+
date: 2010-11-06 00:00:00 -07:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: rspec
|
22
22
|
prerelease: false
|
23
23
|
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
24
25
|
requirements:
|
25
26
|
- - ">="
|
26
27
|
- !ruby/object:Gem::Version
|
28
|
+
hash: 3
|
27
29
|
segments:
|
28
30
|
- 0
|
29
31
|
version: "0"
|
@@ -33,9 +35,11 @@ dependencies:
|
|
33
35
|
name: thor
|
34
36
|
prerelease: false
|
35
37
|
requirement: &id002 !ruby/object:Gem::Requirement
|
38
|
+
none: false
|
36
39
|
requirements:
|
37
40
|
- - ">="
|
38
41
|
- !ruby/object:Gem::Version
|
42
|
+
hash: 35
|
39
43
|
segments:
|
40
44
|
- 0
|
41
45
|
- 13
|
@@ -47,9 +51,11 @@ dependencies:
|
|
47
51
|
name: uuid
|
48
52
|
prerelease: false
|
49
53
|
requirement: &id003 !ruby/object:Gem::Requirement
|
54
|
+
none: false
|
50
55
|
requirements:
|
51
56
|
- - "="
|
52
57
|
- !ruby/object:Gem::Version
|
58
|
+
hash: 13
|
53
59
|
segments:
|
54
60
|
- 2
|
55
61
|
- 0
|
@@ -61,9 +67,11 @@ dependencies:
|
|
61
67
|
name: net-ssh
|
62
68
|
prerelease: false
|
63
69
|
requirement: &id004 !ruby/object:Gem::Requirement
|
70
|
+
none: false
|
64
71
|
requirements:
|
65
72
|
- - "="
|
66
73
|
- !ruby/object:Gem::Version
|
74
|
+
hash: 35
|
67
75
|
segments:
|
68
76
|
- 2
|
69
77
|
- 0
|
@@ -75,9 +83,11 @@ dependencies:
|
|
75
83
|
name: net-scp
|
76
84
|
prerelease: false
|
77
85
|
requirement: &id005 !ruby/object:Gem::Requirement
|
86
|
+
none: false
|
78
87
|
requirements:
|
79
88
|
- - "="
|
80
89
|
- !ruby/object:Gem::Version
|
90
|
+
hash: 19
|
81
91
|
segments:
|
82
92
|
- 1
|
83
93
|
- 0
|
@@ -85,6 +95,22 @@ dependencies:
|
|
85
95
|
version: 1.0.2
|
86
96
|
type: :runtime
|
87
97
|
version_requirements: *id005
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: json_pure
|
100
|
+
prerelease: false
|
101
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
102
|
+
none: false
|
103
|
+
requirements:
|
104
|
+
- - "="
|
105
|
+
- !ruby/object:Gem::Version
|
106
|
+
hash: 11
|
107
|
+
segments:
|
108
|
+
- 1
|
109
|
+
- 4
|
110
|
+
- 6
|
111
|
+
version: 1.4.6
|
112
|
+
type: :runtime
|
113
|
+
version_requirements: *id006
|
88
114
|
description: Circus provides the ability to deploy multi-component applications easily
|
89
115
|
email:
|
90
116
|
- pauljones23@gmail.com
|
@@ -96,96 +122,100 @@ extra_rdoc_files: []
|
|
96
122
|
|
97
123
|
files:
|
98
124
|
- bin/circus
|
99
|
-
- lib/
|
100
|
-
- lib/
|
101
|
-
- lib/
|
102
|
-
- lib/
|
103
|
-
- lib/circus/
|
104
|
-
- lib/circus/profiles/django.rb
|
105
|
-
- lib/circus/profiles/jekyll.rb
|
106
|
-
- lib/circus/profiles/make_base.rb
|
107
|
-
- lib/circus/profiles/rack.rb
|
108
|
-
- lib/circus/profiles/ruby_base.rb
|
109
|
-
- lib/circus/profiles/pure_py.rb
|
110
|
-
- lib/circus/profiles/python_base.rb
|
111
|
-
- lib/circus/profiles/pure_rb.rb
|
112
|
-
- lib/circus/profiles/base.rb
|
113
|
-
- lib/circus/local_config.rb
|
114
|
-
- lib/circus/connection_builder.rb
|
125
|
+
- lib/bundler/patches.rb
|
126
|
+
- lib/bundler/circus_util.rb
|
127
|
+
- lib/bundler/circus_bundler.rb
|
128
|
+
- lib/bundler/gem_cacher.rb
|
129
|
+
- lib/circus/application.rb
|
115
130
|
- lib/circus/stdout_logger.rb
|
116
|
-
- lib/circus/
|
117
|
-
- lib/circus/
|
118
|
-
- lib/circus/
|
119
|
-
- lib/circus/
|
131
|
+
- lib/circus/actstore_client.rb
|
132
|
+
- lib/circus/clown_client.rb
|
133
|
+
- lib/circus/processes/daemontools.rb
|
134
|
+
- lib/circus/act.rb
|
120
135
|
- lib/circus/agents/dbus_logger.rb
|
121
|
-
- lib/circus/agents/
|
122
|
-
- lib/circus/agents/
|
136
|
+
- lib/circus/agents/conversation.rb
|
137
|
+
- lib/circus/agents/dbus_connection.rb
|
123
138
|
- lib/circus/agents/encoding.rb
|
124
139
|
- lib/circus/agents/params.rb
|
125
140
|
- lib/circus/agents/connection.rb
|
141
|
+
- lib/circus/agents/client.rb
|
126
142
|
- lib/circus/agents/ssh_connection.rb
|
127
|
-
- lib/circus/
|
128
|
-
- lib/circus/
|
129
|
-
- lib/circus/cli.rb
|
130
|
-
- lib/circus/application.rb
|
143
|
+
- lib/circus/connection_builder.rb
|
144
|
+
- lib/circus/booth_client.rb
|
131
145
|
- lib/circus/profiles.rb
|
132
|
-
- lib/circus/repos.rb
|
133
146
|
- lib/circus/version.rb
|
134
|
-
- lib/circus/
|
147
|
+
- lib/circus/local_config.rb
|
135
148
|
- lib/circus/booth_tool.rb
|
149
|
+
- lib/circus/cli.rb
|
150
|
+
- lib/circus/resource_allocator_client.rb
|
151
|
+
- lib/circus/external_util.rb
|
152
|
+
- lib/circus/repos/git.rb
|
153
|
+
- lib/circus/repos/mercurial.rb
|
154
|
+
- lib/circus/repos.rb
|
155
|
+
- lib/circus/profiles/rack.rb
|
156
|
+
- lib/circus/profiles/ruby_base.rb
|
157
|
+
- lib/circus/profiles/maven_webapp.rb
|
158
|
+
- lib/circus/profiles/pure_py.rb
|
159
|
+
- lib/circus/profiles/chef_stack.rb
|
160
|
+
- lib/circus/profiles/maven_webapp_jetty.xml.erb
|
161
|
+
- lib/circus/profiles/jekyll.rb
|
162
|
+
- lib/circus/profiles/make_base.rb
|
163
|
+
- lib/circus/profiles/shell.rb
|
164
|
+
- lib/circus/profiles/pure_rb.rb
|
165
|
+
- lib/circus/profiles/maven_webapp_jetty_app.xml.erb
|
166
|
+
- lib/circus/profiles/python_base.rb
|
167
|
+
- lib/circus/profiles/django.rb
|
168
|
+
- lib/circus/profiles/base.rb
|
136
169
|
- lib/circus.rb
|
137
|
-
- lib/bundler/patches.rb
|
138
|
-
- lib/bundler/circus_bundler.rb
|
139
|
-
- lib/bundler/circus_util.rb
|
140
|
-
- vendor/ruby-dbus/doc/tutorial/src/default.template
|
141
|
-
- vendor/ruby-dbus/doc/tutorial/src/10.intro.page
|
142
|
-
- vendor/ruby-dbus/doc/tutorial/src/00.index.page
|
143
|
-
- vendor/ruby-dbus/doc/tutorial/src/30.service.page
|
144
|
-
- vendor/ruby-dbus/doc/tutorial/src/default.css
|
145
|
-
- vendor/ruby-dbus/doc/tutorial/src/20.basic_client.page
|
146
|
-
- vendor/ruby-dbus/setup.rb
|
147
|
-
- vendor/ruby-dbus/ChangeLog
|
148
|
-
- vendor/ruby-dbus/lib/dbus.rb
|
149
|
-
- vendor/ruby-dbus/lib/dbus/export.rb
|
150
|
-
- vendor/ruby-dbus/lib/dbus/type.rb
|
151
|
-
- vendor/ruby-dbus/lib/dbus/auth.rb
|
152
|
-
- vendor/ruby-dbus/lib/dbus/message.rb
|
153
|
-
- vendor/ruby-dbus/lib/dbus/bus.rb
|
154
|
-
- vendor/ruby-dbus/lib/dbus/marshall.rb
|
155
|
-
- vendor/ruby-dbus/lib/dbus/matchrule.rb
|
156
|
-
- vendor/ruby-dbus/lib/dbus/introspect.rb
|
157
|
-
- vendor/ruby-dbus/README
|
158
|
-
- vendor/ruby-dbus/HOWTO-RELEASE
|
159
|
-
- vendor/ruby-dbus/NEWS
|
160
170
|
- vendor/ruby-dbus/Rakefile
|
161
|
-
- vendor/ruby-dbus/
|
162
|
-
- vendor/ruby-dbus/
|
171
|
+
- vendor/ruby-dbus/HOWTO-RELEASE
|
172
|
+
- vendor/ruby-dbus/ChangeLog
|
173
|
+
- vendor/ruby-dbus/COPYING
|
174
|
+
- vendor/ruby-dbus/examples/utils/listnames.rb
|
175
|
+
- vendor/ruby-dbus/examples/utils/notify.rb
|
163
176
|
- vendor/ruby-dbus/examples/simple/call_introspect.rb
|
164
177
|
- vendor/ruby-dbus/examples/rhythmbox/playpause.rb
|
165
|
-
- vendor/ruby-dbus/examples/no-introspect/nm-test.rb
|
166
|
-
- vendor/ruby-dbus/examples/no-introspect/tracker-test.rb
|
167
178
|
- vendor/ruby-dbus/examples/gdbus/gdbus
|
168
|
-
- vendor/ruby-dbus/examples/gdbus/gdbus.glade
|
169
179
|
- vendor/ruby-dbus/examples/gdbus/launch.sh
|
170
|
-
- vendor/ruby-dbus/examples/
|
171
|
-
- vendor/ruby-dbus/examples/
|
172
|
-
- vendor/ruby-dbus/
|
180
|
+
- vendor/ruby-dbus/examples/gdbus/gdbus.glade
|
181
|
+
- vendor/ruby-dbus/examples/service/service_newapi.rb
|
182
|
+
- vendor/ruby-dbus/examples/service/call_service.rb
|
183
|
+
- vendor/ruby-dbus/examples/no-introspect/tracker-test.rb
|
184
|
+
- vendor/ruby-dbus/examples/no-introspect/nm-test.rb
|
185
|
+
- vendor/ruby-dbus/lib/dbus.rb
|
186
|
+
- vendor/ruby-dbus/lib/dbus/bus.rb
|
187
|
+
- vendor/ruby-dbus/lib/dbus/message.rb
|
188
|
+
- vendor/ruby-dbus/lib/dbus/introspect.rb
|
189
|
+
- vendor/ruby-dbus/lib/dbus/matchrule.rb
|
190
|
+
- vendor/ruby-dbus/lib/dbus/auth.rb
|
191
|
+
- vendor/ruby-dbus/lib/dbus/marshall.rb
|
192
|
+
- vendor/ruby-dbus/lib/dbus/export.rb
|
193
|
+
- vendor/ruby-dbus/lib/dbus/type.rb
|
194
|
+
- vendor/ruby-dbus/setup.rb
|
195
|
+
- vendor/ruby-dbus/NEWS
|
196
|
+
- vendor/ruby-dbus/README
|
197
|
+
- vendor/ruby-dbus/test/variant_test.rb
|
198
|
+
- vendor/ruby-dbus/test/t6-loop.rb
|
173
199
|
- vendor/ruby-dbus/test/server_test.rb
|
174
|
-
- vendor/ruby-dbus/test/test_server
|
175
|
-
- vendor/ruby-dbus/test/t1
|
176
200
|
- vendor/ruby-dbus/test/service_newapi.rb
|
177
|
-
- vendor/ruby-dbus/test/bus_driver_test.rb
|
178
|
-
- vendor/ruby-dbus/test/t6-loop.rb
|
179
201
|
- vendor/ruby-dbus/test/server_robustness_test.rb
|
180
202
|
- vendor/ruby-dbus/test/t3-ticket27.rb
|
181
203
|
- vendor/ruby-dbus/test/test_all
|
182
|
-
- vendor/ruby-dbus/test/
|
183
|
-
- vendor/ruby-dbus/test/
|
204
|
+
- vendor/ruby-dbus/test/test_server
|
205
|
+
- vendor/ruby-dbus/test/t1
|
206
|
+
- vendor/ruby-dbus/test/signal_test.rb
|
184
207
|
- vendor/ruby-dbus/test/t2.rb
|
208
|
+
- vendor/ruby-dbus/test/bus_driver_test.rb
|
185
209
|
- vendor/ruby-dbus/test/session_bus_test_manual.rb
|
186
|
-
- vendor/ruby-dbus/test/signal_test.rb
|
187
210
|
- vendor/ruby-dbus/test/Makefile
|
188
|
-
- vendor/ruby-dbus/
|
211
|
+
- vendor/ruby-dbus/test/t5-report-dbus-interface.rb
|
212
|
+
- vendor/ruby-dbus/doc/tutorial/src/30.service.page
|
213
|
+
- vendor/ruby-dbus/doc/tutorial/src/default.css
|
214
|
+
- vendor/ruby-dbus/doc/tutorial/src/00.index.page
|
215
|
+
- vendor/ruby-dbus/doc/tutorial/src/10.intro.page
|
216
|
+
- vendor/ruby-dbus/doc/tutorial/src/20.basic_client.page
|
217
|
+
- vendor/ruby-dbus/doc/tutorial/src/default.template
|
218
|
+
- vendor/ruby-dbus/ruby-dbus.gemspec
|
189
219
|
- LICENSE
|
190
220
|
- README.md
|
191
221
|
has_rdoc: true
|
@@ -199,16 +229,20 @@ require_paths:
|
|
199
229
|
- lib
|
200
230
|
- vendor/ruby-dbus/lib
|
201
231
|
required_ruby_version: !ruby/object:Gem::Requirement
|
232
|
+
none: false
|
202
233
|
requirements:
|
203
234
|
- - ">="
|
204
235
|
- !ruby/object:Gem::Version
|
236
|
+
hash: 3
|
205
237
|
segments:
|
206
238
|
- 0
|
207
239
|
version: "0"
|
208
240
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
241
|
+
none: false
|
209
242
|
requirements:
|
210
243
|
- - ">="
|
211
244
|
- !ruby/object:Gem::Version
|
245
|
+
hash: 31
|
212
246
|
segments:
|
213
247
|
- 1
|
214
248
|
- 3
|
@@ -217,7 +251,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
217
251
|
requirements: []
|
218
252
|
|
219
253
|
rubyforge_project:
|
220
|
-
rubygems_version: 1.3.
|
254
|
+
rubygems_version: 1.3.7
|
221
255
|
signing_key:
|
222
256
|
specification_version: 3
|
223
257
|
summary: Deploying the circus that is your application
|