class Admiral::Layers::AdmiralSvnPuppetManifest

Public Class Methods

new(config, ipaddress) click to toggle source
Calls superclass method Admiral::LayerBase::new
# File lib/admiral/layers/admiral.svn.puppet.manifest.rb, line 9
def initialize(config, ipaddress)
  description = "Retrieving manifest from SVN"

  super(description, config, ipaddress)
  add_parameter('svn_manifest_base_url', 'Root URL where are located the manifests in SVN (ex: https://domain.com/puppet-manifests)')
  add_parameter('manifest_source', 'Path after the root URL (ex: production)')
  add_parameter('svn_user', 'Username for SVN')
  add_parameter('svn_password', 'Password for SVN')
end

Public Instance Methods

do_action() click to toggle source
# File lib/admiral/layers/admiral.svn.puppet.manifest.rb, line 19
def do_action
  manifest_source       = @config['manifest_source']
  manifests_dir         = '/var/lib/puppet/manifests'
  svn_manifest_base_url = @config['svn_manifest_base_url']
  svn_user              = @config['svn_user']
  svn_password          = @config['svn_password']

  cmd = "svn co --non-interactive --no-auth-cache #{svn_manifest_base_url}/#{manifest_source} #{manifests_dir}  --username=#{svn_user} --password=#{svn_password}"

  rc = run_ssh_command(cmd)
  return (rc == 0)
end