Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
105 changes: 57 additions & 48 deletions manifests/init.pp
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,11 @@
# Set the value of the statsd_forward_port varable. Used to forward all
# statsd metrics to another host.
# $manage_repo
# Boolean to indicate whether this module should attempt to manage
# the package repo. Only for RPM-based distros. Default true.
# Deprecated. Only works for RPM. Install datadog-agent manually and then set
# manage_install=false to achieve the same behaviour as setting this to false.
# $manage_install
# Boolean to indicate whether this module should attempt to install the
# Agent, or assume it will be installed by other means. Default true.
# $graphite_listen_port
# Set graphite listener port
# $extra_template
Expand Down Expand Up @@ -243,6 +246,7 @@
$service_ensure = 'running',
$service_enable = true,
Boolean $manage_repo = true,
Boolean $manage_install = true,
$hostname_extraction_regex = undef,
Boolean $hostname_fqdn = false,
$dogstatsd_port = 8125,
Expand Down Expand Up @@ -385,56 +389,61 @@
default: { $_loglevel = 'INFO' }
}

if $use_apt_backup_keyserver {
$_apt_keyserver = $apt_backup_keyserver
} else {
$_apt_keyserver = $apt_keyserver
}

case $::operatingsystem {
'Ubuntu','Debian' : {
class { 'datadog_agent::ubuntu':
agent_major_version => $_agent_major_version,
agent_version => $agent_version,
service_ensure => $service_ensure,
service_enable => $service_enable,
service_provider => $service_provider,
agent_repo_uri => $agent_repo_uri,
release => $apt_release,
skip_apt_key_trusting => $skip_apt_key_trusting,
apt_keyserver => $_apt_keyserver,
}
}
'RedHat','CentOS','Fedora','Amazon','Scientific','OracleLinux' : {
class { 'datadog_agent::redhat':
agent_major_version => $_agent_major_version,
agent_repo_uri => $agent_repo_uri,
manage_repo => $manage_repo,
agent_version => $agent_version,
service_ensure => $service_ensure,
service_enable => $service_enable,
service_provider => $service_provider,
# Install agent
if $manage_install {
case $::operatingsystem {
'Ubuntu','Debian' : {
if $use_apt_backup_keyserver {
$_apt_keyserver = $apt_backup_keyserver
} else {
$_apt_keyserver = $apt_keyserver
}
class { 'datadog_agent::ubuntu':
agent_major_version => $_agent_major_version,
agent_version => $agent_version,
agent_repo_uri => $agent_repo_uri,
release => $apt_release,
skip_apt_key_trusting => $skip_apt_key_trusting,
apt_keyserver => $_apt_keyserver,
}
}
}
'Windows' : {
class { 'datadog_agent::windows' :
agent_major_version => $_agent_major_version,
agent_repo_uri => $agent_repo_uri,
agent_version => $agent_version,
service_ensure => $service_ensure,
service_enable => $service_enable,
msi_location => $win_msi_location,
api_key => $api_key,
hostname => $host,
service_name => $datadog_agent::params::service_name,
tags => $local_tags,
ensure => $win_ensure
'RedHat','CentOS','Fedora','Amazon','Scientific','OracleLinux' : {
class { 'datadog_agent::redhat':
agent_major_version => $_agent_major_version,
agent_repo_uri => $agent_repo_uri,
manage_repo => $manage_repo,
agent_version => $agent_version,
}
}
if ($win_ensure == absent) {
return() #Config files will remain unchanged on uninstall
'Windows' : {
class { 'datadog_agent::windows' :
agent_major_version => $_agent_major_version,
agent_repo_uri => $agent_repo_uri,
agent_version => $agent_version,
msi_location => $win_msi_location,
api_key => $api_key,
hostname => $host,
tags => $local_tags,
ensure => $win_ensure
}
if ($win_ensure == absent) {
return() #Config files will remain unchanged on uninstall
}
}
default: { fail("Class[datadog_agent]: Unsupported operatingsystem: ${::operatingsystem}") }
}
default: { fail("Class[datadog_agent]: Unsupported operatingsystem: ${::operatingsystem}") }
} else {
package { $datadog_agent::params::package_name:
ensure => present,
source => 'Agent installation not managed by Puppet, make sure the Agent is installed beforehand.',
}
}

# Declare service
class { 'datadog_agent::service' :
service_ensure => $service_ensure,
service_enable => $service_enable,
service_provider => $service_provider,
}

if ($::operatingsystem != 'Windows') {
Expand Down
22 changes: 0 additions & 22 deletions manifests/redhat.pp
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,6 @@
Optional[String] $agent_repo_uri = undef,
Boolean $manage_repo = true,
String $agent_version = $datadog_agent::params::agent_version,
String $service_ensure = 'running',
Boolean $service_enable = true,
Optional[String] $service_provider = undef,
) inherits datadog_agent::params {

if $manage_repo {
Expand Down Expand Up @@ -82,23 +79,4 @@
ensure => $agent_version,
}

if $service_provider {
service { $datadog_agent::params::service_name:
ensure => $service_ensure,
enable => $service_enable,
provider => $service_provider,
hasstatus => false,
pattern => 'dd-agent',
require => Package[$datadog_agent::params::package_name],
}
} else {
service { $datadog_agent::params::service_name:
ensure => $service_ensure,
enable => $service_enable,
hasstatus => false,
pattern => 'dd-agent',
require => Package[$datadog_agent::params::package_name],
}
}

}
40 changes: 40 additions & 0 deletions manifests/service.pp
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Class: datadog_agent::service
#
# This class declares the datadog-agent service
#

class datadog_agent::service(
$service_ensure = 'running',
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
$service_ensure = 'running',
String $service_ensure = 'running',

Copy link
Copy Markdown
Contributor Author

@albertvaka albertvaka Feb 19, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This can also be an enum type (ie: running without quotes) so I don't want to force the type. We do this in several other places in the module.

Boolean $service_enable = true,
Optional[String] $service_provider = undef,
) inherits datadog_agent::params {

if ($::operatingsystem == 'Windows') {
service { $datadog_agent::params::service_name:
ensure => $service_ensure,
enable => $service_enable,
require => Package[$datadog_agent::params::package_name]
}
} else {
if $service_provider {
service { $datadog_agent::params::service_name:
ensure => $service_ensure,
enable => $service_enable,
provider => $service_provider,
hasstatus => false,
pattern => 'dd-agent',
require => Package[$datadog_agent::params::package_name],
}
} else {
service { $datadog_agent::params::service_name:
ensure => $service_ensure,
enable => $service_enable,
hasstatus => false,
pattern => 'dd-agent',
require => Package[$datadog_agent::params::package_name],
}
}
}


}
21 changes: 0 additions & 21 deletions manifests/ubuntu.pp
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,6 @@
Optional[String] $agent_repo_uri = undef,
String $release = $datadog_agent::params::apt_default_release,
Boolean $skip_apt_key_trusting = false,
String $service_ensure = 'running',
Boolean $service_enable = true,
Optional[String] $service_provider = undef,
Optional[String] $apt_keyserver = undef,
) inherits datadog_agent::params {

Expand Down Expand Up @@ -77,22 +74,4 @@
Class['apt::update']],
}

if $service_provider {
service { $datadog_agent::params::service_name:
ensure => $service_ensure,
enable => $service_enable,
provider => $service_provider,
hasstatus => false,
pattern => 'dd-agent',
require => Package[$datadog_agent::params::package_name],
}
} else {
service { $datadog_agent::params::service_name:
ensure => $service_ensure,
enable => $service_enable,
hasstatus => false,
pattern => 'dd-agent',
require => Package[$datadog_agent::params::package_name],
}
}
}
8 changes: 0 additions & 8 deletions manifests/windows.pp
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,11 @@
class datadog_agent::windows(
Integer $agent_major_version = $datadog_agent::params::default_agent_major_version,
String $agent_version = $datadog_agent::params::agent_version,
String $service_ensure = 'running',
Optional[String] $agent_repo_uri = undef,
String $msi_location = 'C:/Windows/temp',
String $api_key = $datadog_agent::api_key,
String $hostname = $datadog_agent::host,
String $service_name = $datadog_agent::service_name_win,
Array $tags = $datadog_agent::tags,
Boolean $service_enable = true,
Enum['present', 'absent'] $ensure = 'present',
) inherits datadog_agent::params {

Expand Down Expand Up @@ -63,11 +60,6 @@
install_options => ['/norestart', {'APIKEY' => $api_key, 'HOSTNAME' => $hostname, 'TAGS' => $tags}]
}

service { $service_name:
ensure => $service_ensure,
enable => $service_enable,
require => Package[$datadog_agent::params::package_name]
}
} else {
exec { 'datadog_6_14_fix':
command => "((New-Object System.Net.WebClient).DownloadFile('https://s3.amazonaws.com/ddagent-windows-stable/scripts/fix_6_14.ps1', \$env:temp + '\\fix_6_14.ps1')); &\$env:temp\\fix_6_14.ps1",
Expand Down
76 changes: 0 additions & 76 deletions spec/classes/datadog_agent_redhat_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -44,37 +44,11 @@
is_expected.not_to contain_yumrepo('datadog6')
end
end
context 'overriding provider' do
let(:params) do
{
service_provider: 'upstart',
agent_major_version: 5,
}
end

it do
is_expected.to contain_service('datadog-agent')\
.that_requires('package[datadog-agent]')
end
it do
is_expected.to contain_service('datadog-agent').with(
'provider' => 'upstart',
'ensure' => 'running',
)
end
end

# it should install the packages
it do
is_expected.to contain_package('datadog-agent')\
.with_ensure('latest')
end

# it should be able to start the service and enable the service by default
it do
is_expected.to contain_service('datadog-agent')\
.that_requires('Package[datadog-agent]')
end
end

context 'agent 6' do
Expand Down Expand Up @@ -115,37 +89,12 @@
is_expected.not_to contain_yumrepo('datadog6')
end
end
context 'overriding provider' do
let(:params) do
{
service_provider: 'upstart',
agent_major_version: 6,
}
end

it do
is_expected.to contain_service('datadog-agent')\
.that_requires('package[datadog-agent]')
end
it do
is_expected.to contain_service('datadog-agent').with(
'provider' => 'upstart',
'ensure' => 'running',
)
end
end

# it should install the packages
it do
is_expected.to contain_package('datadog-agent')\
.with_ensure('latest')
end

# it should be able to start the service and enable the service by default
it do
is_expected.to contain_service('datadog-agent')\
.that_requires('Package[datadog-agent]')
end
end

context 'agent 7' do
Expand Down Expand Up @@ -187,36 +136,11 @@
is_expected.not_to contain_yumrepo('datadog6')
end
end
context 'overriding provider' do
let(:params) do
{
service_provider: 'upstart',
agent_major_version: 7,
}
end

it do
is_expected.to contain_service('datadog-agent')\
.that_requires('package[datadog-agent]')
end
it do
is_expected.to contain_service('datadog-agent').with(
'provider' => 'upstart',
'ensure' => 'running',
)
end
end

# it should install the packages
it do
is_expected.to contain_package('datadog-agent')\
.with_ensure('latest')
end

# it should be able to start the service and enable the service by default
it do
is_expected.to contain_service('datadog-agent')\
.that_requires('Package[datadog-agent]')
end
end
end
Loading