diff --git a/spec/acceptance/fixtures/askbot.pp b/spec/acceptance/fixtures/askbot.pp new file mode 100644 index 0000000..365903d --- /dev/null +++ b/spec/acceptance/fixtures/askbot.pp @@ -0,0 +1,117 @@ +# Database configuration + +$db_provider = 'pgsql' +$db_name = 'askbotdb' +$db_user = 'askbot' +$db_password = 'mys3cr3tpassw0rd' + +# Redis configuration +$redis_enabled = true +$redis_port = 6378 +$redis_max_memory = '256m' +$redis_bind = '127.0.0.1' +$redis_password = 's3cr3t' + +$site_name = 'askbot-dev.local' + +$solr_version = '4.10.4' + +class { 'postgresql::server': } + +postgresql::server::db { $db_name: + user => $db_user, + password => postgresql_password($db_user, $db_password), + before => Class['askbot'], +} + +# redis (custom module written by tipit) +class { '::redis': + redis_port => $redis_port, + redis_max_memory => $redis_max_memory, + redis_bind => $redis_bind, + redis_password => $redis_password, + version => '2.8.4', + before => Class['askbot'], +} + +# solr search engine +class { '::solr': + version => $solr_version, + cores => [ 'core-default', 'core-en', 'core-zh' ], +} + +file { '/usr/share/solr/core-en/conf/schema.xml': + ensure => present, + content => template('askbot/examples/solr/schema.en.xml.erb'), + replace => true, + owner => 'jetty', + group => 'jetty', + mode => '0644', + require => File['/usr/share/solr/core-zh/conf'], +} + +file { '/usr/share/solr/core-zh/conf/schema.xml': + ensure => present, + content => template('askbot/examples/solr/schema.cn.xml.erb'), + replace => true, + owner => 'jetty', + group => 'jetty', + mode => '0644', + require => File['/usr/share/solr/core-en/conf'], +} + +# deploy smartcn Chinese analyzer from solr contrib/analysys-extras +file { "/usr/share/solr/WEB-INF/lib/lucene-analyzers-smartcn-${solr_version}.jar": + ensure => present, + replace => 'no', + source => "/tmp/solr-${solr_version}/contrib/analysis-extras/lucene-libs/lucene-analyzers-smartcn-${solr_version}.jar", + owner => 'root', + group => 'root', + mode => '0644', + require => Exec['copy-solr'], +} + +class { '::askbot': + db_provider => $db_provider, + db_name => $db_name, + db_user => $db_user, + db_password => $db_password, + askbot_revision => '87086ebcefc5be29e80d3228e465e6bec4523fcf', + redis_enabled => $redis_enabled, + redis_port => $redis_port, + redis_max_memory => $redis_max_memory, + redis_bind => $redis_bind, + redis_password => $redis_password, + custom_theme_enabled => false, + custom_theme_name => 'os', + site_name => $site_name, + askbot_debug => true, + solr_enabled => true, + # ssl setup + site_ssl_enabled => true, + site_ssl_cert_file => '/etc/ssl/certs/ssl-cert-snakeoil.pem', + site_ssl_key_file => '/etc/ssl/private/ssl-cert-snakeoil.key', +} + +# custom theme +git { 'askbot-theme': + ensure => present, + path => '/srv/askbot-site/themes', + branch => 'feature/development', + origin => 'https://git.openstack.org/openstack-infra/askbot-theme', + latest => true, + require => [ + File['/srv/askbot-site'], Package['git'] + ], + before => Exec['askbot-syncdb'], + notify => [ + Exec['theme-bundle-install-os'], + Exec['theme-bundle-compile-os'], + Exec['askbot-static-generate'], + ], +} + +askbot::theme::compass { 'os': + require => Git['askbot-theme'], + before => Exec['askbot-static-generate'], +} diff --git a/spec/acceptance/fixtures/preconditions.pp b/spec/acceptance/fixtures/preconditions.pp new file mode 100644 index 0000000..ae34d0e --- /dev/null +++ b/spec/acceptance/fixtures/preconditions.pp @@ -0,0 +1,4 @@ +# Installing ssl-cert in order to get snakeoil certs +package { 'ssl-cert': + ensure => present, +} diff --git a/spec/acceptance/puppet_askbot_spec.rb b/spec/acceptance/puppet_askbot_spec.rb new file mode 100644 index 0000000..1ab3a10 --- /dev/null +++ b/spec/acceptance/puppet_askbot_spec.rb @@ -0,0 +1,27 @@ +require 'puppet-openstack_infra_spec_helper/spec_helper_acceptance' + +describe 'puppet-askbot:: manifest', :if => ['debian', 'ubuntu'].include?(os[:family]) do + def pp_path + base_path = File.dirname(__FILE__) + File.join(base_path, 'fixtures') + end + + def preconditions_puppet_manifest + module_path = File.join(pp_path, 'preconditions.pp') + File.read(module_path) + end + + before(:all) do + apply_manifest(preconditions_puppet_manifest, catch_failures: true) + end + + def init_puppet_manifest + module_path = File.join(pp_path, 'askbot.pp') + File.read(module_path) + end + + it 'should work with no errors' do + apply_manifest(init_puppet_manifest, catch_failures: true) + end + +end diff --git a/examples/solr/schema.cn.xml.erb b/templates/examples/solr/schema.cn.xml.erb similarity index 100% rename from examples/solr/schema.cn.xml.erb rename to templates/examples/solr/schema.cn.xml.erb diff --git a/examples/solr/schema.en.xml.erb b/templates/examples/solr/schema.en.xml.erb similarity index 100% rename from examples/solr/schema.en.xml.erb rename to templates/examples/solr/schema.en.xml.erb