Skip to content

Commit

Permalink
use ssd's more elegant method to compute tomcat.base at compile-time
Browse files Browse the repository at this point in the history
rather than run-time
  • Loading branch information
bryanwb committed Feb 29, 2012
1 parent b40a9d2 commit 926a42e
Show file tree
Hide file tree
Showing 5 changed files with 13 additions and 29 deletions.
23 changes: 5 additions & 18 deletions ivy/providers/default.rb
Original file line number Diff line number Diff line change
Expand Up @@ -18,24 +18,11 @@
# limitations under the License.
#

def resolve_dest(resource)
# use a glob because file can have different extensions
file_glob = "#{resource.artifactId}-#{resource.version}\.*"
if resource.dest_attr
dest_attrs = resource.dest_attr.split(':')
subdirectory = dest_attrs[-1].match('/') ? dest_attrs.pop : ""
node_attr = eval( "node['#{self.cookbook_name}']" +
dest_attrs.map{ |attr| "['" + attr + "']" }.join('') )
dest = "#{node_attr}/#{subdirectory}"
else
dest = "#{resource.dest}"
end
"#{dest}/#{file_glob}"
end

action :install do
full_name = [ new_resource.groupId, new_resource.artifactId, new_resource.version ].join(' ')
dest = resolve_dest new_resource
full_name = [ new_resource.groupId, new_resource.artifactId, new_resource.version ].join(' ')
# use a glob because file can have different extensions
file_glob = "#{new_resource.artifactId}-#{new_resource.version}\.*"
dest = new_resource.dest
Chef::Log.debug("dest is #{dest}")
dest_pattern = "#{dest}/[artifact]-[revision].[ext]"
full_command = %Q{#{node['ivy']['command']} -dependency #{full_name} -retrieve #{dest_pattern} }
Expand All @@ -46,6 +33,6 @@ def resolve_dest(resource)
chown #{new_resource.owner}:#{new_resource.owner} #{dest}
chmod #{new_resource.mode.to_s} #{dest}
EOH
only_if { Dir.glob("#{dest}\.*").empty? }
only_if { Dir.glob("#{dest}/#{file_glob}").empty? }
end
end
3 changes: 1 addition & 2 deletions jira/recipes/default.rb
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
include_recipe "ark"
include_recipe "tomcat::base"
include_recipe "ivy"
base = "/tmp/"

t = tomcat "jira" do
user node['jira']['user']
Expand All @@ -33,7 +32,7 @@
ivy "mysql-connector-java" do
groupId "mysql"
version "5.1.18"
dest_attr ":tomcat:base:/lib"
dest "#{t.base}/lib"
end

# ark "jira_war" do
Expand Down
2 changes: 1 addition & 1 deletion pgbouncer/attributes/default.rb
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@


# Where to wait for clients
default[:pgbouncer][:listen_addr] = "#{node.network.interfaces.eth0.addresses.current_automatic.keys[0]}"
default[:pgbouncer][:listen_addr] = "*"
default[:pgbouncer][:listen_port] = "6432"

# Authentication settings
Expand Down
8 changes: 1 addition & 7 deletions tomcat/providers/default.rb
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,9 @@ def get_distro
def get_resource_hash(resource)
require 'pathname'
resource_h = Hash.new
catalina_parent = Pathname.new(node['tomcat']['home']).parent.to_s
resource_h['name'] = resource.name
resource_h['home'] = node['tomcat']['home']
resource_h['base'] = "#{catalina_parent}/#{resource_h['name']}"
new_resource.base = resource_h['base']
Chef::Log.debug("cookbook_name is #{self.cookbook_name}")
node[self.cookbook_name]['tomcat'] = {}
node[self.cookbook_name]['tomcat']['base'] = resource_h['base']
resource_h['base'] = resource.base
resource_h['context_dir'] = "#{resource_h['base']}/conf/Catalina/localhost"
resource_h['log_dir'] = "#{resource_h['base']}/logs"
resource_h['tmp_dir'] = "#{resource_h['base']}/temp"
Expand Down Expand Up @@ -140,7 +135,6 @@ def get_resource_hash(resource)
])
end
s.run_action( :enable )
#s.run_action( :start )

new_resource.updated_by_last_action(true)
end
Expand Down
6 changes: 5 additions & 1 deletion tomcat/resources/default.rb
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,12 @@

# we have to set default for the supports attribute
# in initializer since it is a 'reserved' attribute name
def initialize(*args)
def initialize(*args)s
require 'pathname'
super
@action = :install
catalina_parent = Pathname.new(node['tomcat']['home']).parent.to_s
@base = "#{catalina_parent}/#{@name}"
Chef::Log.debug("base_is #{@base}")
@supports = {:report => true, :exception => true}
end

0 comments on commit 926a42e

Please sign in to comment.