puppet-ec2api/manifests/s3.pp

76 lines
1.7 KiB
Puppet

# == Class: ec2api::s3
#
# Manage the EC2 S3 service and its configuration
#
# === Parameters
#
# [*s3_service_manage*]
# Grant to manage enable/disable services.
# Defaults to true
#
# [*s3_service_name*]
# The name of the EC2 S3 API service
#
# [*s3_service_enable*]
# Enable/disable S3 API service
# Defaults true
#
# [*buckets_path*]
# Path to S3 buckets
# Defaults undef
#
# [*s3_listen*]
# IP address for S3 API to listen
# Defaults '0.0.0.0'
#
# [*s3_listen_port*]
# Port used when accessing the S3 api
# Defaults 3334
#
class ec2api::s3 (
$s3_service_manage = $ec2api::params::s3_service_manage,
$s3_service_name = $ec2api::params::s3_service_name,
$s3_service_enable = $ec2api::params::s3_service_enable,
$buckets_path = $ec2api::params::buckets_path,
$s3_listen = $ec2api::params::s3_listen,
$s3_listen_port = $ec2api::params::s3_listen_port,
) inherits ec2api::params {
validate_bool($s3_service_manage)
validate_bool($s3_service_enable)
validate_string($s3_service_name)
validate_string($s3_listen)
validate_integer($s3_listen_port)
if $buckets_path {
validate_absolute_path($buckets_path)
}
ec2api_config {
'DEFAULT/buckets_path': value => $buckets_path;
'DEFAULT/s3_listen': value => $s3_listen;
'DEFAULT/s3_listen_port': value => $s3_listen_port;
}
if $s3_service_enable {
$s3_service_ensure = 'running'
} else {
$s3_service_ensure = 'stopped'
}
if $s3_service_manage {
service { 'openstack-ec2-api-s3':
ensure => $s3_service_ensure,
name => $s3_service_name,
enable => $s3_service_enable,
hasstatus => true,
hasrestart => true,
}
Ec2api_config <||> ~>
Service['openstack-ec2-api-s3']
}
}