Adapt synced swift module
- Moved device_dirs out of swift module to openstack::storage_node - Removed some unused parameters - 'ring_devices' type moved to 'osnailyfacter' module - Moved log settings from hardcoded templates to class params Upstream Change-Id: I173652ec5bbe8d4382e10db4510d91aebceacab5 - Moved swift::notify::ceilometer to 'openstack' module - Included fix for upstream bug #1384149 Upstream Change-Id: I97da480fcf5ce62da99c31481b181b8b61375db5 Implements: blueprint merge-openstack-puppet-modules Change-Id: I36ca6d4e1215a0b788d08d2f2a4c25c8ab851bf2
This commit is contained in:
parent
97d958098c
commit
22c3e85dcb
@ -101,7 +101,7 @@ class openstack::ceilometer (
|
||||
}
|
||||
|
||||
if $swift {
|
||||
class {'::swift::notify::ceilometer':
|
||||
class {'::openstack::swift::notify::ceilometer':
|
||||
enable_ceilometer => true,
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,12 @@
|
||||
class openstack::swift::notify::ceilometer (
|
||||
$enable_ceilometer = false,
|
||||
)
|
||||
{
|
||||
if $enable_ceilometer {
|
||||
concat::fragment { 'swift_ceilometer':
|
||||
target => '/etc/swift/proxy-server.conf',
|
||||
content => template('openstack/swift/ceilometer.conf.erb'),
|
||||
order => '10',
|
||||
}
|
||||
}
|
||||
}
|
@ -39,6 +39,7 @@ class openstack::swift::proxy (
|
||||
$rings = ['account', 'object', 'container'],
|
||||
$debug = false,
|
||||
$verbose = true,
|
||||
$log_facility = 'LOG_LOCAL1',
|
||||
) {
|
||||
if !defined(Class['swift']) {
|
||||
class { 'swift':
|
||||
@ -47,6 +48,17 @@ class openstack::swift::proxy (
|
||||
}
|
||||
}
|
||||
|
||||
# calculate log_level
|
||||
if $debug {
|
||||
$log_level = 'DEBUG'
|
||||
}
|
||||
elsif $verbose {
|
||||
$log_level = 'INFO'
|
||||
}
|
||||
else {
|
||||
$log_level = 'WARNING'
|
||||
}
|
||||
|
||||
if $memcached and !defined(Class['memcached']) {
|
||||
class { 'memcached': }
|
||||
}
|
||||
@ -59,8 +71,9 @@ class openstack::swift::proxy (
|
||||
allow_account_management => $proxy_allow_account_management,
|
||||
account_autocreate => $proxy_account_autocreate,
|
||||
package_ensure => $package_ensure,
|
||||
debug => $debug,
|
||||
verbose => $verbose,
|
||||
log_facility => $log_facility,
|
||||
log_level => $log_level,
|
||||
log_name => 'swift-proxy-server',
|
||||
}
|
||||
|
||||
# configure all of the middlewares
|
||||
@ -119,9 +132,12 @@ class openstack::swift::proxy (
|
||||
local_net_ip => $swift_local_net_ip,
|
||||
}
|
||||
|
||||
# anchors
|
||||
Anchor <| title == 'rebalance_end' |> -> Service['swift-proxy']
|
||||
Anchor <| title == 'rebalance_end' |> -> Swift::Storage::Generic <| |>
|
||||
# resource ordering
|
||||
Swift::Ringbuilder::Rebalance <||> -> Service['swift-proxy']
|
||||
Swift::Ringbuilder::Rebalance <||> -> Swift::Storage::Generic <| |>
|
||||
Swift::Ringbuilder::Create<||> ->
|
||||
Ring_devices<||> ~>
|
||||
Swift::Ringbuilder::Rebalance <||>
|
||||
|
||||
} else {
|
||||
validate_string($master_swift_proxy_ip)
|
||||
@ -140,7 +156,4 @@ class openstack::swift::proxy (
|
||||
|
||||
Swift::Ringsync <| |> ~> Service["swift-proxy"]
|
||||
}
|
||||
|
||||
# deploy a script that can be used for testing
|
||||
file { '/tmp/swift_keystone_test.rb': source => 'puppet:///modules/swift/swift_keystone_test.rb' }
|
||||
}
|
||||
|
@ -45,6 +45,7 @@ class openstack::swift::storage_node (
|
||||
$qpid_password = 'qpid_pw',
|
||||
$qpid_user = 'nova',
|
||||
$qpid_nodes = ['127.0.0.1'],
|
||||
$log_facility = 'LOG_LOCAL2',
|
||||
) {
|
||||
if !defined(Class['swift']) {
|
||||
class { 'swift':
|
||||
@ -63,14 +64,41 @@ class openstack::swift::storage_node (
|
||||
}
|
||||
}
|
||||
|
||||
# create dirs for devices
|
||||
define device_directory($devices) {
|
||||
if(!defined(File[$devices])) {
|
||||
file { $devices:
|
||||
ensure => 'directory',
|
||||
owner => 'swift',
|
||||
group => 'swift',
|
||||
recurse => true,
|
||||
recurselimit => 1,
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($storage_devices != undef) {
|
||||
anchor {'swift-device-directories-start': } ->
|
||||
device_directory { $storage_devices:
|
||||
devices => $storage_mnt_base_dir,
|
||||
}
|
||||
}
|
||||
|
||||
# install all swift storage servers together
|
||||
class { 'swift::storage::all':
|
||||
storage_local_net_ip => $swift_local_net_ip,
|
||||
devices => $storage_mnt_base_dir,
|
||||
devices_dirs => $storage_devices,
|
||||
swift_zone => $swift_zone,
|
||||
debug => $debug,
|
||||
verbose => $verbose,
|
||||
log_facility => $log_facility,
|
||||
}
|
||||
# override log_name defaults for Swift::Storage::Server
|
||||
# TODO (adidenko) move this into Hiera when it's ready
|
||||
Swift::Storage::Server <| title == '6000' |> {
|
||||
log_name => 'swift-object-server',
|
||||
}
|
||||
Swift::Storage::Server <| title == '6001' |> {
|
||||
log_name => 'swift-container-server',
|
||||
}
|
||||
Swift::Storage::Server <| title == '6002' |> {
|
||||
log_name => 'swift-account-server',
|
||||
}
|
||||
|
||||
validate_string($master_swift_proxy_ip)
|
||||
|
@ -0,0 +1,4 @@
|
||||
|
||||
[filter:ceilometer]
|
||||
use = egg:ceilometer#swift
|
||||
|
@ -0,0 +1,88 @@
|
||||
Puppet::Type.newtype(:ring_devices) do
|
||||
|
||||
newparam(:name, :namevar => true) do
|
||||
end
|
||||
|
||||
newparam(:storages) do
|
||||
desc 'list of all swift storages'
|
||||
|
||||
validate do |value|
|
||||
if value.is_a? Hash
|
||||
fail(Puppet::Error, "#{value} should be a Hash and include ip address") unless value['storage_address']
|
||||
else
|
||||
value.each do |element|
|
||||
fail(Puppet::Error, "#{element} should be a Hash and include ip address") unless element.is_a?(Hash) && element['storage_address']
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
munge do |value|
|
||||
value.is_a?(Hash) ? [value] : value
|
||||
end
|
||||
end
|
||||
|
||||
autorequire(:ring_account_device) do
|
||||
autos = []
|
||||
catalog.resources.find_all { |r| r.is_a?(Puppet::Type.type("ring_account_device".to_sym)) }.each do |r|
|
||||
autos << r
|
||||
end
|
||||
autos
|
||||
end
|
||||
|
||||
autorequire(:ring_object_device) do
|
||||
autos = []
|
||||
catalog.resources.find_all { |r| r.is_a?(Puppet::Type.type("ring_object_device".to_sym)) }.each do |r|
|
||||
autos << r
|
||||
end
|
||||
autos
|
||||
end
|
||||
|
||||
autorequire(:ring_container_device) do
|
||||
autos = []
|
||||
catalog.resources.find_all { |r| r.is_a?(Puppet::Type.type("ring_container_device".to_sym)) }.each do |r|
|
||||
autos << r
|
||||
end
|
||||
autos
|
||||
end
|
||||
|
||||
|
||||
|
||||
# Default resources for swift ring builder
|
||||
def resources
|
||||
resources = []
|
||||
|
||||
default_storage = {
|
||||
'swift_zone' => 100,
|
||||
'object_port'=>6000,
|
||||
'container_port'=>6001,
|
||||
'account_port'=>6002,
|
||||
'mountpoints'=> "1 1\n2 1",
|
||||
'weight'=> 1,
|
||||
'types'=>['container', 'object', 'account'],
|
||||
}
|
||||
|
||||
self[:storages].each do |storage|
|
||||
merged_storage = default_storage.merge(storage)
|
||||
merged_storage['types'].collect do |type|
|
||||
merged_storage['mountpoints'].each do |mountpoint|
|
||||
port = merged_storage["#{type}_port"]
|
||||
device = mountpoint.split[0]
|
||||
options = {
|
||||
:name=>"#{merged_storage['storage_address']}:#{port}/#{device}",
|
||||
:zone => merged_storage['swift_zone'],
|
||||
:weight => merged_storage['weight'],
|
||||
}
|
||||
resources += [Puppet::Type.type("ring_#{type}_device".to_sym).new(options)]
|
||||
end
|
||||
end
|
||||
end
|
||||
resources
|
||||
end
|
||||
|
||||
def eval_generate
|
||||
resources
|
||||
end
|
||||
|
||||
|
||||
|
||||
end
|
@ -285,7 +285,7 @@ class osnailyfacter::cluster_ha {
|
||||
$swift_proxies = $controllers
|
||||
$swift_local_net_ip = $::storage_address
|
||||
$master_swift_proxy_nodes = filter_nodes($nodes_hash,'role','primary-controller')
|
||||
$master_swift_proxy_ip = $master_swift_proxy_nodes[0]['internal_address']
|
||||
$master_swift_proxy_ip = $master_swift_proxy_nodes[0]['storage_address']
|
||||
#$master_hostname = $master_swift_proxy_nodes[0]['name']
|
||||
$swift_loopback = false
|
||||
if $primary_controller {
|
||||
@ -477,9 +477,13 @@ class osnailyfacter::cluster_ha {
|
||||
sync_rings => ! $primary_proxy,
|
||||
debug => $::debug,
|
||||
verbose => $::verbose,
|
||||
log_facility => 'LOG_SYSLOG',
|
||||
}
|
||||
if $primary_proxy {
|
||||
ring_devices {'all': storages => $controllers }
|
||||
ring_devices {'all':
|
||||
storages => $controllers,
|
||||
require => Class['swift'],
|
||||
}
|
||||
}
|
||||
|
||||
if !$swift_hash['resize_value']
|
||||
@ -499,6 +503,7 @@ class osnailyfacter::cluster_ha {
|
||||
master_swift_proxy_ip => $master_swift_proxy_ip,
|
||||
debug => $::debug,
|
||||
verbose => $::verbose,
|
||||
log_facility => 'LOG_SYSLOG',
|
||||
}
|
||||
class { 'swift::keystone::auth':
|
||||
password => $swift_hash[user_password],
|
||||
@ -960,6 +965,7 @@ class osnailyfacter::cluster_ha {
|
||||
debug => $debug,
|
||||
verbose => $verbose,
|
||||
syslog_log_facility_cinder => $syslog_log_facility_cinder,
|
||||
log_facility => 'LOG_SYSLOG',
|
||||
}
|
||||
|
||||
# TODO(bogdando) add monit swift-storage services monitoring, if required
|
||||
@ -974,7 +980,8 @@ class osnailyfacter::cluster_ha {
|
||||
|
||||
if $primary_proxy {
|
||||
ring_devices {'all':
|
||||
storages => $swift_storages
|
||||
storages => $swift_storages,
|
||||
require => Class['swift'],
|
||||
}
|
||||
}
|
||||
|
||||
@ -988,6 +995,7 @@ class osnailyfacter::cluster_ha {
|
||||
syslog_log_level => $syslog_log_level,
|
||||
debug => $debug,
|
||||
verbose => $verbose,
|
||||
log_facility => 'LOG_SYSLOG',
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -34,6 +34,9 @@
|
||||
# Optional but requires write_affinity to be set. Defaults to undef.
|
||||
# [*package_ensure*] Ensure state of the swift proxy package.
|
||||
# Optional. Defaults to present.
|
||||
# [*log_name*]
|
||||
# Configures log_name for swift proxy-server.
|
||||
# Optional. Defaults to proxy-server
|
||||
#
|
||||
# == Examples
|
||||
#
|
||||
@ -59,6 +62,7 @@ class swift::proxy(
|
||||
$log_level = 'INFO',
|
||||
$log_facility = 'LOG_LOCAL1',
|
||||
$log_handoffs = true,
|
||||
$log_name = 'proxy-server',
|
||||
$read_affinity = undef,
|
||||
$write_affinity = undef,
|
||||
$write_affinity_node_count = undef,
|
||||
|
@ -21,6 +21,7 @@ define swift::storage::server(
|
||||
$log_facility = 'LOG_LOCAL2',
|
||||
$log_level = 'INFO',
|
||||
$log_address = '/dev/log',
|
||||
$log_name = "${type}-server",
|
||||
# this parameters needs to be specified after type and name
|
||||
$config_file_path = "${type}-server/${name}.conf"
|
||||
) {
|
||||
|
@ -24,7 +24,7 @@ describe 'swift::proxy::s3token' do
|
||||
verify_contents(subject, fragment_file,
|
||||
[
|
||||
'[filter:s3token]',
|
||||
'paste.filter_factory = keystone.middleware.s3_token:filter_factory',
|
||||
'paste.filter_factory = keystoneclient.middleware.s3_token:filter_factory',
|
||||
'auth_port = 35357',
|
||||
'auth_protocol = http',
|
||||
'auth_host = 127.0.0.1'
|
||||
@ -45,7 +45,7 @@ describe 'swift::proxy::s3token' do
|
||||
verify_contents(subject, fragment_file,
|
||||
[
|
||||
'[filter:s3token]',
|
||||
'paste.filter_factory = keystone.middleware.s3_token:filter_factory',
|
||||
'paste.filter_factory = keystoneclient.middleware.s3_token:filter_factory',
|
||||
'auth_port = 4212',
|
||||
'auth_protocol = https',
|
||||
'auth_host = 1.2.3.4'
|
||||
|
@ -99,6 +99,7 @@ describe 'swift::proxy' do
|
||||
:allow_account_management => false,
|
||||
:account_autocreate => false,
|
||||
:log_level => 'DEBUG',
|
||||
:log_name => 'swift-proxy-server',
|
||||
:read_affinity => 'r1z1=100, r1=200',
|
||||
:write_affinity => 'r1',
|
||||
:write_affinity_node_count => '2 * replicas',
|
||||
@ -116,6 +117,7 @@ describe 'swift::proxy' do
|
||||
'pipeline = swauth proxy-server',
|
||||
'[app:proxy-server]',
|
||||
'use = egg:swift#proxy',
|
||||
'set log_name = swift-proxy-server',
|
||||
'allow_account_management = false',
|
||||
'account_autocreate = false',
|
||||
'read_affinity = r1z1=100, r1=200',
|
||||
|
@ -151,6 +151,9 @@ describe 'swift::storage::server' do
|
||||
it { should contain_file(fragment_file) \
|
||||
.with_content(/^user\s*=\s*swift\s*$/)
|
||||
}
|
||||
it { should contain_file(fragment_file) \
|
||||
.with_content(/^set log_name\s*=\s*#{t}-server\s*$/)
|
||||
}
|
||||
it { should contain_file(fragment_file) \
|
||||
.with_content(/^set log_facility\s*=\s*LOG_LOCAL2\s*$/)
|
||||
}
|
||||
|
@ -12,7 +12,7 @@ pipeline = <%= @pipeline.to_a.join(' ') %>
|
||||
|
||||
[app:account-server]
|
||||
use = egg:swift#account
|
||||
set log_name = account-server
|
||||
set log_name = <%= @log_name %>
|
||||
set log_facility = <%= @log_facility %>
|
||||
set log_level = <%= @log_level %>
|
||||
set log_requests = True
|
||||
|
@ -14,7 +14,7 @@ pipeline = <%= @pipeline.to_a.join(' ') %>
|
||||
[app:container-server]
|
||||
allow_versions = <%= @allow_versions %>
|
||||
use = egg:swift#container
|
||||
set log_name = @container-server
|
||||
set log_name = <%= @log_name %>
|
||||
set log_facility = <%= @log_facility %>
|
||||
set log_level = <%= @log_level %>
|
||||
set log_requests = True
|
||||
|
@ -12,7 +12,7 @@ pipeline = <%= @pipeline.to_a.join(' ') %>
|
||||
|
||||
[app:object-server]
|
||||
use = egg:swift#object
|
||||
set log_name = object-server
|
||||
set log_name = <%= @log_name %>
|
||||
set log_facility = <%= @log_facility %>
|
||||
set log_level = <%= @log_level %>
|
||||
set log_requests = True
|
||||
|
@ -25,7 +25,7 @@ pipeline = <%= @pipeline.to_a.join(' ') %>
|
||||
|
||||
[app:proxy-server]
|
||||
use = egg:swift#proxy
|
||||
set log_name = proxy-server
|
||||
set log_name = <%= @log_name %>
|
||||
set log_facility = <%= @log_facility %>
|
||||
set log_level = <%= @log_level %>
|
||||
set log_address = <%= @log_address %>
|
||||
|
@ -1,5 +1,5 @@
|
||||
[filter:s3token]
|
||||
paste.filter_factory = keystone.middleware.s3_token:filter_factory
|
||||
paste.filter_factory = keystoneclient.middleware.s3_token:filter_factory
|
||||
auth_port = <%= @auth_port %>
|
||||
auth_protocol = <%= @auth_protocol %>
|
||||
auth_host = <%= @auth_host %>
|
||||
|
Loading…
Reference in New Issue
Block a user