diff --git a/.gitignore b/.gitignore deleted file mode 100644 index caeb880..0000000 --- a/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -.vagrant -.DS_Store -.idea -*.iml -Gemfile.lock -.bundled_gems/ diff --git a/Gemfile b/Gemfile deleted file mode 100644 index 019213a..0000000 --- a/Gemfile +++ /dev/null @@ -1,15 +0,0 @@ -source 'https://rubygems.org' - -if File.exists?('/home/zuul/src/git.openstack.org/openstack-infra/puppet-openstack_infra_spec_helper') - gem_checkout_method = {:path => '/home/zuul/src/git.openstack.org/openstack-infra/puppet-openstack_infra_spec_helper'} -else - gem_checkout_method = {:git => 'https://git.openstack.org/openstack-infra/puppet-openstack_infra_spec_helper'} -end -gem_checkout_method[:require] = false - -group :development, :test, :system_tests do - gem 'puppet-openstack_infra_spec_helper', - gem_checkout_method -end - -# vim:ft=ruby diff --git a/LICENSE b/LICENSE deleted file mode 100644 index d645695..0000000 --- a/LICENSE +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/Modulefile b/Modulefile deleted file mode 100644 index 79aeeea..0000000 --- a/Modulefile +++ /dev/null @@ -1,14 +0,0 @@ -name 'openstack-refstack' -version '0.0.1' -source 'https://git.openstack.org/openstack-infra/puppet-refstack.git' -author 'openstackci' -license 'Apache 2.0' -summary 'Puppet module for Refstack' -description 'This module installs and maintains the OpenStack RefStack service.' -project_page 'https://git.openstack.org/cgit/openstack-infra/puppet-refstack' - -## Add dependencies, if any: -dependency 'puppetlabs/stdlib', '= 3.2.0' -dependency 'puppetlabs/mysql', '= 0.6.1' -dependency 'puppetlabs/apache', '= 0.0.4' -dependency 'openstackci/vcsrepo', '= 0.0.8' diff --git a/README.md b/README.md index 39b460f..ec889a9 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,9 @@ -# OpenStack RefStack Module +This project is no longer maintained. -This module manages and installs OpenStack's RefStack Service. Add more -documentation here. \ No newline at end of file +The contents of this repository are still available in the Git +source code management system. To see the contents of this +repository before it reached its end of life, please check out the +previous commit with "git checkout HEAD^1". + +For any further questions, please email +service-discuss@lists.opendev.org or join #opendev on OFTC. diff --git a/Rakefile b/Rakefile deleted file mode 100644 index ff1f0d7..0000000 --- a/Rakefile +++ /dev/null @@ -1,8 +0,0 @@ -require 'rubygems' -require 'puppetlabs_spec_helper/rake_tasks' -require 'puppet-lint/tasks/puppet-lint' -PuppetLint.configuration.fail_on_warnings = true -PuppetLint.configuration.send('disable_80chars') -PuppetLint.configuration.send('disable_autoloader_layout') -PuppetLint.configuration.send('disable_class_inherits_from_params_class') -PuppetLint.configuration.send('disable_class_parameter_defaults') diff --git a/Vagrantfile b/Vagrantfile deleted file mode 100644 index ada619c..0000000 --- a/Vagrantfile +++ /dev/null @@ -1,27 +0,0 @@ -# -*- mode: ruby -*- -# vi: set ft=ruby : - -# Vagrantfile API/syntax version. Don't touch unless you know what you're doing! -VAGRANTFILE_API_VERSION = "2" - -Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| - - # Define the box. - config.vm.box = "ubuntu/trusty64" - config.vm.hostname = "puppet-refstack-trusty64" - - config.vm.provider :virtualbox do |vb| - vb.customize ['modifyvm', :id,'--memory', '2048'] - vb.name = 'puppet-refstack-trusty64' - end - - # Grant a private IP - config.vm.network "private_network", ip: "192.168.99.88" - - # All VM's run the same provisioning - config.vm.provision "shell", path: "vagrant.sh" - config.vm.provision "puppet" do |puppet| - puppet.manifests_path = ['vm', "/vagrant"] - puppet.manifest_file = "vagrant.pp" - end -end diff --git a/manifests/apache/http.pp b/manifests/apache/http.pp deleted file mode 100644 index 105e3d9..0000000 --- a/manifests/apache/http.pp +++ /dev/null @@ -1,72 +0,0 @@ -# Copyright (c) 2015 Hewlett-Packard Development Company, L.P. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -# == Class: refstack::apache::http -# -# This module installs RefStack onto the current host using an unencrypted http -# protocol. -# -class refstack::apache::http () { - require ::refstack::params - require ::refstack::app - - # Pull various variables into this module, for slightly saner templates. - $install_www_root = $::refstack::params::install_www_root - $src_root = $::refstack::params::src_root - $hostname = $::refstack::params::hostname - $user = $::refstack::params::user - $group = $::refstack::params::group - $server_admin = $::refstack::params::server_admin - - # Install apache - include ::httpd - include ::httpd::params - include ::httpd::mod::wsgi - - # Create a copy of the wsgi file with apache user permissions. - file { '/etc/refstack/app.wsgi': - ensure => present, - owner => $::httpd::params::user, - group => $::httpd::params::group, - mode => '0644', - source => "${src_root}/refstack/api/app.wsgi", - require => [ - Class['refstack::app'] - ], - notify => Service['httpd'], - } - - # Synchronize the app directory and the apache directory. - file { $install_www_root: - ensure => directory, - owner => $::httpd::params::user, - group => $::httpd::params::group, - source => "${src_root}/refstack-ui/app", - recurse => true, - purge => true, - force => true, - notify => Service['httpd'], - } - - # Set up RefStack as HTTP. - httpd::vhost { $hostname: - port => 80, - docroot => $install_www_root, - priority => '50', - template => 'refstack/refstack_http.vhost.erb', - ssl => false, - notify => Service['httpd'], - require => File['/etc/refstack/app.wsgi'], - } -} diff --git a/manifests/apache/https.pp b/manifests/apache/https.pp deleted file mode 100644 index cd73c72..0000000 --- a/manifests/apache/https.pp +++ /dev/null @@ -1,109 +0,0 @@ -# Copyright (c) 2015 Hewlett-Packard Development Company, L.P. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -# == Class: refstack::apache::https -# -# This module installs RefStack onto the current host using an the https -# protocol. -# -class refstack::apache::https () { - require ::refstack::params - require ::refstack::app - - # Pull various variables into this module, for slightly saner templates. - $install_www_root = $::refstack::params::install_www_root - $src_root = $::refstack::params::src_root - $hostname = $::refstack::params::hostname - $user = $::refstack::params::user - $group = $::refstack::params::group - $server_admin = $::refstack::params::server_admin - - $ssl_cert_content = $::refstack::params::ssl_cert_content - $ssl_cert = $::refstack::params::ssl_cert - $ssl_key_content = $::refstack::params::ssl_key_content - $ssl_key = $::refstack::params::ssl_key - $ssl_ca_content = $::refstack::params::ssl_ca_content - $resolved_ssl_ca = $::refstack::params::resolved_ssl_ca - - # Install apache - include ::httpd - include ::httpd::params - include ::httpd::mod::wsgi - - # Create a copy of the wsgi file with apache user permissions. - file { '/etc/refstack/app.wsgi': - ensure => present, - owner => $::httpd::params::user, - group => $::httpd::params::group, - mode => '0644', - source => "${src_root}/refstack/api/app.wsgi", - require => [ - Class['refstack::app'] - ], - notify => Service['httpd'], - } - - if $ssl_cert_content != undef { - file { $ssl_cert: - owner => 'root', - group => 'ssl-cert', - mode => '0640', - content => $ssl_cert_content, - notify => Service['httpd'], - } - } - - if $ssl_key_content != undef { - file { $ssl_key: - owner => 'root', - group => 'ssl-cert', - mode => '0640', - content => $ssl_key_content, - notify => Service['httpd'], - } - } - - if $ssl_ca_content != undef { - file { $resolved_ssl_ca: - owner => 'root', - group => 'ssl-cert', - mode => '0640', - content => $ssl_ca_content, - notify => Service['httpd'], - } - } - - # Synchronize the app directory and the apache directory. - file { $install_www_root: - ensure => directory, - owner => $::httpd::params::user, - group => $::httpd::params::group, - source => "${src_root}/refstack-ui/app", - recurse => true, - purge => true, - force => true, - notify => Service['httpd'], - } - - # Set up RefStack as HTTPS. - httpd::vhost { $hostname: - port => 443, - docroot => $install_www_root, - priority => '50', - template => 'refstack/refstack_https.vhost.erb', - ssl => true, - notify => Service['httpd'], - require => File['/etc/refstack/app.wsgi'], - } -} diff --git a/manifests/app.pp b/manifests/app.pp deleted file mode 100644 index 673e26f..0000000 --- a/manifests/app.pp +++ /dev/null @@ -1,192 +0,0 @@ -# Copyright (c) 2015 Hewlett-Packard Development Company, L.P. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -# == Class: refstack::app -# -# This class installs the RefStack application (API and UI) so that it may be -# run via wsgi. -# -class refstack::app () { - require ::refstack::params - require ::refstack::user - - # Import parameters into local scope. - $src_root = $::refstack::params::src_root - $user = $::refstack::params::user - $group = $::refstack::params::group - - # Ensure python-dev is present - if !defined(Package['python-dev']) { - package { 'python-dev': - ensure => present - } - } - - # Ensure OpenSSL is present - if !defined(Package['libssl-dev']) { - package { 'libssl-dev': - ensure => present - } - } - - # Needed for PyOpenSSL - if !defined(Package['libffi-dev']) { - package { 'libffi-dev': - ensure => present - } - } - - # Ensure NPM is present - if !defined(Package['npm']) { - package { 'npm': - ensure => present - } - } - - if !defined(Package['nodejs']) { - package { 'nodejs': - ensure => present - } - } - - if !defined(Package['nodejs-legacy']) { - package { 'nodejs-legacy': - ensure => present - } - } - - if !defined(Package['pymysql']) { - package { 'pymysql': - ensure => present, - provider => 'pip' - } - } - - # Create the RefStack configuration directory. - file { '/etc/refstack': - ensure => directory, - owner => $user, - group => $group, - mode => '0755', - } - - file { $src_root: - ensure => 'directory', - owner => $user, - group => $group, - mode => '0755', - } - - # Configure the RefStack API. - file { '/etc/refstack/refstack.conf': - ensure => present, - owner => $user, - group => $group, - mode => '0644', - content => template('refstack/refstack.conf.erb'), - require => [ - File['/etc/refstack'] - ] - } - - # Download the RefStack tar.gz source distribution from pypi only if a new - # one is available. - exec { 'download-refstack': - command => 'pip install refstack -d /tmp --no-deps --no-binary :all:', - path => '/usr/local/bin:/usr/bin:/bin', - user => $user, - group => $group, - onlyif => 'pip list --outdated | grep -c refstack || test `pip freeze | grep -c refstack` -eq 0' - } - - # Untar the source contents. - exec { 'untar-refstack' : - command => "tar -xvzf /tmp/refstack-*.tar.gz -C ${src_root} --strip-components=1", - path => '/usr/local/bin:/usr/bin:/bin', - refreshonly => true, - user => $user, - group => $group, - require => File[$src_root], - subscribe => Exec['download-refstack'] - } - - # Remove tar.gz file after extracting. - exec { 'remove-tar': - command => 'rm -f /tmp/refstack-*.tar.gz', - path => '/usr/local/bin:/usr/bin:/bin', - refreshonly => true, - subscribe => Exec['untar-refstack'] - } - - # Install RefStack using pip. - exec { 'install-refstack': - command => "pip install -U ${src_root}", - path => '/usr/local/bin:/usr/bin:/bin', - refreshonly => true, - require => File[$src_root], - subscribe => Exec['untar-refstack'], - notify => Service['httpd'] - } - - # Migrate the database. - exec { 'migrate-refstack-db': - command => 'refstack-manage --config-file /etc/refstack/refstack.conf upgrade --revision head', - path => '/usr/local/bin:/usr/bin:/bin', - refreshonly => true, - subscribe => [ - Exec['install-refstack'], - File['/etc/refstack/refstack.conf'], - ], - require => [ - Exec['install-refstack'], - File['/etc/refstack/refstack.conf'], - ] - } - - # Run NPM Install. - exec { 'npm install': - command => 'npm install', - path => '/usr/local/bin:/usr/bin:/bin/', - cwd => $src_root, - user => $user, - group => $group, - refreshonly => true, - subscribe => Exec['untar-refstack'], - require => [ - Package['npm'], - ], - environment => [ - # This is not automatically set by exec. - 'HOME=/home/refstack' - ] - } - - # Generate HTML templates from docs - exec { 'generate-doc-html': - command => "python ${src_root}/tools/convert-docs.py -o ${src_root}/refstack-ui/app/components/about/templates ${src_root}/doc/source/*.rst", - path => '/usr/local/bin:/usr/bin:/bin', - refreshonly => true, - subscribe => Exec['install-refstack'] - } - - # Create config.json file. - file { "${src_root}/refstack-ui/app/config.json": - ensure => file, - content => '{"refstackApiUrl": "/api/v1"}', - require => [ - File[$src_root], - Exec['untar-refstack'], - ] - } -} diff --git a/manifests/init.pp b/manifests/init.pp deleted file mode 100644 index c78365b..0000000 --- a/manifests/init.pp +++ /dev/null @@ -1,61 +0,0 @@ -# Copyright (c) 2015 Hewlett-Packard Development Company, L.P. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -# == Class: refstack -# -# This class installs and updates RefStack in a continuous-deployment fashion -# directly from its git repositories. -# -class refstack ( - $mysql_user_password, - $mysql_host = 'localhost', - $mysql_database = 'refstack', - $mysql_user = 'refstack', - $hostname = $::fqdn, - $protocol = 'http', - - $ssl_cert_content = undef, - $ssl_cert = '/etc/ssl/certs/ssl-cert-snakeoil.pem', - $ssl_key_content = undef, - $ssl_key = '/etc/ssl/private/ssl-cert-snakeoil.key', - $ssl_ca_content = undef, - $ssl_ca = undef, # '/etc/ssl/certs/ca.pem' -) { - - # Configure the entire refstack instance. This does not install anything, - # but ensures that variables are consistent across all modules. - class { '::refstack::params': - mysql_host => $mysql_host, - mysql_database => $mysql_database, - mysql_user => $mysql_user, - mysql_user_password => $mysql_user_password, - hostname => $hostname, - protocol => $protocol, - ssl_cert_content => $ssl_cert_content, - ssl_cert => $ssl_cert, - ssl_key_content => $ssl_key_content, - ssl_key => $ssl_key, - ssl_ca_content => $ssl_ca_content, - ssl_ca => $ssl_ca - } - - include ::refstack::mysql - include ::refstack::app - - if $protocol == 'https' { - include ::refstack::apache::https - } else { - include ::refstack::apache::http - } -} diff --git a/manifests/mysql.pp b/manifests/mysql.pp deleted file mode 100644 index 8c5156a..0000000 --- a/manifests/mysql.pp +++ /dev/null @@ -1,42 +0,0 @@ -# Copyright (c) 2015 Hewlett-Packard Development Company, L.P. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -# == Class: refstack::mysql -# -# The RefStack MySQL manifest will install a standalone, localhost instance -# of mysql if mysql_host is set to 'localhost'. -# -class refstack::mysql () { - - require ::refstack::params - - # Import parameters. - $mysql_host = $refstack::params::mysql_host - $mysql_database = $refstack::params::mysql_database - $mysql_user = $refstack::params::mysql_user - $mysql_user_password = $refstack::params::mysql_user_password - - # Install MySQL - if $mysql_host == 'localhost' { - include ::mysql::server - - # Add the refstack database. - mysql::db { $mysql_database: - user => $mysql_user, - password => $mysql_user_password, - host => $mysql_host, - grant => ['all'], - } - } -} diff --git a/manifests/params.pp b/manifests/params.pp deleted file mode 100644 index c6847b4..0000000 --- a/manifests/params.pp +++ /dev/null @@ -1,72 +0,0 @@ -# Copyright (c) 2015 Hewlett-Packard Development Company, L.P. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -# == Class: refstack::params -# -# Centralized configuration management for the Refstack module. -# -class refstack::params ( - - # [database] refstack.conf - $mysql_user_password, - $mysql_user = 'refstack', - $mysql_host = localhost, - $mysql_port = 3306, - $mysql_database = 'refstack', - - # Source and install directories. - $src_root = '/opt/refstack', - $install_www_root = '/var/www/refstack-www', - - # The user under which refstack will run. - $user = 'refstack', - $group = 'refstack', - $server_admin = undef, - $hostname = $::fqdn, - $protocol = 'http', - - # Apache2 ssl configuration - $ssl_cert_content = undef, - $ssl_cert = '/etc/ssl/certs/ssl-cert-snakeoil.pem', - $ssl_key_content = undef, - $ssl_key = '/etc/ssl/private/ssl-cert-snakeoil.key', - $ssl_ca_content = undef, - $ssl_ca = undef, # '/etc/ssl/certs/ca.pem' -) { - - # Resolve a few parameters based on the install environment. - if $::operatingsystem != 'Ubuntu' or versioncmp($::operatingsystemrelease, '13.10') < 0 { - fail("${::operatingsystem} ${::operatingsystemrelease} is not supported.") - } - - # Build the connection string from individual parameters - $mysql_connection_string = "mysql+pymysql://${mysql_user}:${mysql_user_password}@${mysql_host}:${mysql_port}/${mysql_database}" - - # Construct website URL. - $web_url = "${protocol}://${hostname}" - - $api_url = "${web_url}/api" - - # set the flag to enable anonymous upload (or not) - $enable_anonymous_upload = false - - - # CA file needs special treatment, since we want the path variable - # to be undef in some cases. - if $ssl_ca == undef and $ssl_ca_content != undef { - $resolved_ssl_ca = '/etc/ssl/certs/refstack.ca.pem' - } else { - $resolved_ssl_ca = $ssl_ca - } -} diff --git a/manifests/user.pp b/manifests/user.pp deleted file mode 100644 index 47678de..0000000 --- a/manifests/user.pp +++ /dev/null @@ -1,37 +0,0 @@ -# Copyright (c) 2015 Hewlett-Packard Development Company, L.P. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -# == Class: refstack::user -# -# Sets up the RefStack user. -# -class refstack::user () { - require ::refstack::params - - # Import parameters into local scope. - $user = $::refstack::params::user - $group = $::refstack::params::group - - group { $group: - ensure => present - } - - user { $user: - ensure => present, - groups => [$group], - managehome => true, - shell => '/bin/bash', - require => Group[$group] - } -} diff --git a/metadata.json b/metadata.json deleted file mode 100644 index 605d4c3..0000000 --- a/metadata.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "openstackci-refstack", - "version": "0.0.2", - "author": "Openstack CI", - "summary": "Puppet module for the OpenStack RefStack", - "license": "Apache 2.0", - "source": "https://git.openstack.org/openstack-infra/puppet-refstack.git", - "project_page": "http://ci.openstack.org/", - "issues_url": "https://refstack.openstack.org/#!/project/700", - "dependencies": [ - { - "name": "puppetlabs/stdlib", - "version_requirement": ">= 3.2.0" - }, - { - "name": "puppetlabs/mysql", - "version_requirement": ">= 0.6.1" - }, - { - "name": "openstackci/httpd", - "version_requirement": "= 0.0.4" - }, - { - "name": "openstackci/vcsrepo", - "version_requirement": ">= 0.0.8" - } - ] -} diff --git a/templates/refstack.conf.erb b/templates/refstack.conf.erb deleted file mode 100644 index 667fe2c..0000000 --- a/templates/refstack.conf.erb +++ /dev/null @@ -1,16 +0,0 @@ -[DEFAULT] - -ui_url=<%= scope.lookupvar("::refstack::params::web_url") %> - -[api] - -api_url =<%= scope.lookupvar("::refstack::params::api_url") %> -enable_anonymous_upload =<%= scope.lookupvar("::refstack::params::enable_anonymous_upload") %> - -[database] - -connection=<%= scope.lookupvar("::refstack::params::mysql_connection_string") %> - -[osid] - -openid_return_to=/api/v1/auth/signin_return diff --git a/templates/refstack_http.vhost.erb b/templates/refstack_http.vhost.erb deleted file mode 100644 index 018217d..0000000 --- a/templates/refstack_http.vhost.erb +++ /dev/null @@ -1,19 +0,0 @@ - -<% if !!scope.lookupvar('::refstack::apache::http::server_admin') %> - ServerAdmin <%= scope.lookupvar('::refstack::apache::http::server_admin') %> -<% end %> - ServerName <%= scope.lookupvar('::refstack::apache::http::hostname') %> - - DocumentRoot <%= scope.lookupvar('::refstack::apache::http::install_www_root') %> - - WSGIDaemonProcess refstack user=<%= scope.lookupvar('::refstack::apache::http::user') %> group=<%= scope.lookupvar('::refstack::apache::http::group') %> threads=5 - WSGIScriptAlias /api /etc/refstack/app.wsgi - WSGIPassAuthorization On - LogLevel warn - ErrorLog ${APACHE_LOG_DIR}/refstack-error.log - CustomLog ${APACHE_LOG_DIR}/refstack-access.log combined - - - Require all granted - - diff --git a/templates/refstack_https.vhost.erb b/templates/refstack_https.vhost.erb deleted file mode 100644 index c103cd5..0000000 --- a/templates/refstack_https.vhost.erb +++ /dev/null @@ -1,59 +0,0 @@ - - <% if !!scope.lookupvar('::refstack::apache::https::server_admin') %> - ServerAdmin <%= scope.lookupvar('::refstack::apache::https::server_admin') %> - <% end %> - ServerName <%= scope.lookupvar('::refstack::apache::https::hostname') %> - - DocumentRoot <%= scope.lookupvar('::refstack::apache::https::install_www_root') %> - - Redirect / https://<%= scope.lookupvar('::refstack::apache::https::hostname') %>/ - - LogLevel warn - ErrorLog ${APACHE_LOG_DIR}/refstack-error.log - CustomLog ${APACHE_LOG_DIR}/refstack-access.log combined - - - - - <% if !!scope.lookupvar('::refstack::apache::https::server_admin') %> - ServerAdmin <%= scope.lookupvar('::refstack::apache::https::server_admin') %> - <% end %> - ServerName <%= scope.lookupvar('::refstack::apache::https::hostname') %> - - LogLevel warn - ErrorLog ${APACHE_LOG_DIR}/refstack-ssl-error.log - CustomLog ${APACHE_LOG_DIR}/refstack-ssl-access.log combined - - SSLEngine on - SSLProtocol All -SSLv2 -SSLv3 - - SSLCertificateFile <%= scope.lookupvar('::refstack::apache::https::ssl_cert') %> - SSLCertificateKeyFile <%= scope.lookupvar('::refstack::apache::https::ssl_key') %> - <% if !!scope.lookupvar('::refstack::apache::https::resolved_ssl_ca') %> - SSLCertificateChainFile <%= scope.lookupvar('::refstack::apache::https::resolved_ssl_ca') %> - <% end %> - - - SSLOptions +StdEnvVars - - - SSLOptions +StdEnvVars - - - BrowserMatch "MSIE [2-6]" \ - nokeepalive ssl-unclean-shutdown \ - downgrade-1.0 force-response-1.0 - # MSIE 7 and newer should be able to use keepalive - BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown - - DocumentRoot <%= scope.lookupvar('::refstack::apache::https::install_www_root') %> - - WSGIDaemonProcess refstack user=<%= scope.lookupvar('::refstack::apache::https::user') %> group=<%= scope.lookupvar('::refstack::apache::https::group') %> threads=5 - WSGIScriptAlias /api /etc/refstack/app.wsgi - WSGIPassAuthorization On - - - Require all granted - - - diff --git a/vagrant.pp b/vagrant.pp deleted file mode 100644 index 10c8cdf..0000000 --- a/vagrant.pp +++ /dev/null @@ -1,7 +0,0 @@ -node default { - class { '::refstack': - hostname => '192.168.99.88', - protocol => 'http', - mysql_user_password => 'refstack', - } -} diff --git a/vagrant.sh b/vagrant.sh deleted file mode 100644 index 94c827f..0000000 --- a/vagrant.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/sh - -# Install Puppet! -if [ ! -f /etc/apt/sources.list.d/puppetlabs.list ]; then - lsbdistcodename=`lsb_release -c -s` - wget https://apt.puppetlabs.com/puppetlabs-release-${lsbdistcodename}.deb - sudo dpkg -i puppetlabs-release-${lsbdistcodename}.deb - sudo apt-get update - sudo apt-get dist-upgrade -y -fi - -# Install pip. -wget https://bootstrap.pypa.io/get-pip.py -sudo python get-pip.py - -# Create a symlink to the vagrant directory, so puppet can find our module. -if [ ! -d /etc/puppet/modules/refstack ]; then - sudo ln -s /vagrant /etc/puppet/modules/refstack -fi - -# Install required puppet modules. -if [ ! -d /etc/puppet/modules/stdlib ]; then - puppet module install puppetlabs-stdlib --version 3.2.0 -fi -if [ ! -d /etc/puppet/modules/mysql ]; then - puppet module install puppetlabs-mysql --version 0.6.1 -fi -if [ ! -d /etc/puppet/modules/apache ]; then - puppet module install puppetlabs-apache --version 0.0.4 -fi -if [ ! -d /etc/puppet/modules/vcsrepo ]; then - puppet module install openstackci-vcsrepo --version 0.0.8 -fi