class Admiral::Layers::AdmiralSvnPuppetCookbook
Public Class Methods
new(config, ipaddress)
click to toggle source
Calls superclass method
Admiral::LayerBase::new
# File lib/admiral/layers/admiral.svn.puppet.cookbook.rb, line 10 def initialize(config, ipaddress) description = "Retrieving cookbooks for applications from SVN" super(description, config, ipaddress) add_parameter('svn_cookbook_base_url', 'Root URL where are located the cookbooks in SVN (ex: https://domain.com/puppet-cookbooks)') add_parameter('svn_user', 'Username for SVN') add_parameter('svn_password', 'Password for SVN') add_parameter('applications', 'List of hash that contains application code and source branch (ex: [ {"code"=>"appli1", "branch"=>"trunk"}, ] )') end
Public Instance Methods
do_action()
click to toggle source
# File lib/admiral/layers/admiral.svn.puppet.cookbook.rb, line 20 def do_action svn_cookbook_base_url = @config['svn_cookbook_base_url'] svn_user = @config['svn_user'] svn_password = @config['svn_password'] modules_dir = '/var/lib/puppet/modules/' applications = @config['applications'] applications.each do | application | application_code = application['code'] application_branch = application['branch'] cmd = "svn co --non-interactive --no-auth-cache #{svn_cookbook_base_url}/#{application_code}/#{application_branch}/ #{modules_dir}/#{application_code} --username=#{svn_user} --password=#{svn_password}; done" puts " - Retrieving cookbook for project #{application_code} from #{application_branch}" rc = run_ssh_command(cmd) if rc > 0 return false end end return true end