diff --git a/.fixtures.yml b/.fixtures.yml deleted file mode 100644 index 43a088e..0000000 --- a/.fixtures.yml +++ /dev/null @@ -1,6 +0,0 @@ -fixtures: - repositories: - "stdlib": "https://github.com/puppetlabs/puppetlabs-stdlib.git" - "apt": "https://github.com/puppetlabs/puppetlabs-apt.git" - symlinks: - "qdr": "#{source_dir}" \ No newline at end of file diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 2850371..0000000 --- a/.gitignore +++ /dev/null @@ -1,26 +0,0 @@ -# Add patterns in here to exclude files created by tools integrated with this -# repository, such as test frameworks from the project's recommended workflow, -# rendered documentation and package builds. -# -# Don't add patterns to exclude files created by preferred personal tools -# (editors, IDEs, your operating system itself even). These should instead be -# maintained outside the repository, for example in a ~/.gitignore file added -# with: -# -# git config --global core.excludesfile '~/.gitignore' - -pkg/ -Gemfile.lock -vendor/ -spec/fixtures/ -.vagrant/ -.bundle/ -coverage/ -.idea/ -*.iml -/openstack -/log - -# Files created by releasenotes build -releasenotes/build -.tox diff --git a/.pdkignore b/.pdkignore deleted file mode 100644 index 7e3277a..0000000 --- a/.pdkignore +++ /dev/null @@ -1,52 +0,0 @@ -# common list used in puppetlabs repos -.git/ -.*.sw[op] -.metadata -.yardoc -.yardwarns -*.iml -/.bundle/ -/.idea/ -/.vagrant/ -/coverage/ -/bin/ -/doc/ -/Gemfile.local -/Gemfile.lock -/junit/ -/log/ -/pkg/ -/spec/fixtures/manifests/ -/spec/fixtures/modules/* -/tmp/ -/vendor/ -/convert_report.txt -/update_report.txt -.DS_Store -.project -.envrc -/inventory.yaml -/spec/fixtures/litmus_inventory.yaml -/.fixtures.yml -/Gemfile -/.gitattributes -/.gitignore -/.pdkignore -/.puppet-lint.rc -/Rakefile -/rakelib/ -/.rspec -/..yml -/.yardopts -/spec/ -/.vscode/ -/.sync.yml -/.devcontainer/ -# OpenStack-specific files -/bindep.txt -/.gitreview -/releasenotes/ -/setup.cfg -/setup.py -/tox.ini -/.zuul.yaml diff --git a/.zuul.yaml b/.zuul.yaml deleted file mode 100644 index d955862..0000000 --- a/.zuul.yaml +++ /dev/null @@ -1,6 +0,0 @@ -- project: - templates: - - puppet-openstack-check-jobs - - puppet-openstack-module-unit-jobs - - puppet-openstack-litmus-jobs - - release-notes-jobs-python3 diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst deleted file mode 100644 index 735fc3a..0000000 --- a/CONTRIBUTING.rst +++ /dev/null @@ -1,19 +0,0 @@ -The source repository for this project can be found at: - - https://opendev.org/openstack/puppet-qdr - -Pull requests submitted through GitHub are not monitored. - -To start contributing to OpenStack, follow the steps in the contribution guide -to set up and use Gerrit: - - https://docs.openstack.org/contributors/code-and-documentation/quick-start.html - -Bugs should be filed on Launchpad: - - https://bugs.launchpad.net/puppet-qdr - -For more specific information about contributing to this repository, see the -Puppet OpenStack contributor guide: - - https://docs.openstack.org/puppet-openstack-guide/latest/contributor/contributing.html diff --git a/Gemfile b/Gemfile deleted file mode 100644 index 3f46561..0000000 --- a/Gemfile +++ /dev/null @@ -1,36 +0,0 @@ -source ENV['GEM_SOURCE'] || "https://rubygems.org" - -group :development, :test, :system_tests do - spec_helper_dir = '/home/zuul/src/opendev.org/openstack/puppet-openstack_spec_helper' - if File.directory?(spec_helper_dir) - if ENV['ZUUL_PROJECT'] == 'openstack/puppet-openstack_spec_helper' - gem 'puppet-openstack_spec_helper', - :path => '../..', - :require => 'false' - else - gem 'puppet-openstack_spec_helper', - :path => spec_helper_dir, - :require => 'false' - end - else - spec_helper_version = ENV['ZUUL_BRANCH'] || "master" - gem 'puppet-openstack_spec_helper', - :git => 'https://opendev.org/openstack/puppet-openstack_spec_helper', - :ref => spec_helper_version, - :require => 'false' - end -end - -if facterversion = ENV['FACTER_GEM_VERSION'] - gem 'facter', facterversion, :require => false -else - gem 'facter', :require => false -end - -if puppetversion = ENV['PUPPET_GEM_VERSION'] - gem 'puppet', puppetversion, :require => false -else - gem 'puppet', :require => false -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/README.md b/README.md deleted file mode 100644 index f815b23..0000000 --- a/README.md +++ /dev/null @@ -1,188 +0,0 @@ -Team and repository tags -======================== - -[![Team and repository tags](https://governance.openstack.org/tc/badges/puppet-qdr.svg)](https://governance.openstack.org/tc/reference/tags/index.html) - - - -# qdr - -#### Table of Contents - -1. [Overview](#overview) -2. [Module Description - Manage the QPID Dispatch Router](#module-description) -3. [Setup - The basics of getting started with qdr](#setup) - * [What qdr affects](#what-qdr-affects) - * [Setup requirements](#setup-requirements) - * [Beginning with qdr](#beginning-with-qdr) -4. [Usage - Configuration options and additional functionality](#usage) -5. [Reference - An under-the-hood peek at what the module is doing and how](#reference) -5. [Limitations - OS compatibility, etc.](#limitations) -6. [Development - Guide for contributing to the module](#development) -7. [Contributors - Those with commits](#contributors) -8. [Release Notes - Release notes for the project](#release-notes) -9. [Repository - The project source code repository](#repository) - -## Overview - -This module manages the QPID Dispatch Router (qdr) found at: - - http://qpid.apache.org/components/dispatch-router/ - -The dispatch router provides flexible and scalable interconnect between any AMQP 1.0 endpoints, whether they be clients, brokers or other AMQP-enabled services - -Support is intended for Red Hat and Ubuntu OS family deployed with Pupppet V4.x - -## Module Description - -This module sets up the installations, configuration and management of the QPID Dispatch -Router (qdr) class and has a number of providers that correpsond the router configuration -entities such as listeners and connectors. - -This module will facilitate the deployment of a full/partial mesh topology of QPID Dispatch -Routers serving as the messaging interconnect for a site. - - -## Setup - -### What qdr affects - -* repository files -* packages -* configuration files -* service -* configuration entities - -### Beginning with qdr - -```puppet -include qdr -``` - -The default configuration currently installs Qpid-Dispatch-Router 0.6 - -## Usage - -All configuration parameters can be managed via the main qdr class. - -```puppet -class { 'qdr' : - service_enable => true, - container_workder_threads => 4, - listener_port => 15672, -} -``` - -## Class Reference - -* qdr: Provides the basic installation and configuration sequence -* qdr::config: Provides qdrouterd configuration -* qdr::install: Performs package installations -* qdr::params: Aggregates configuration data for router -* qdr::service: Manages the qdrouterd service state - - -## Resource Types - -### qdr\_address - -Resource to manage address prefixes for distribution and phasing - -Query all current internal addresses: '$puppet resource qdr_address' - -```puppet -qdr_address { 'anyAddress' : - prefix => 'unicast', - distribution => 'closest', -} -``` - -### qdr\_connector - -Resource configuration entity to establish outgoing connections from the router. - -Query all current connectors: '$puppet resource qdr_connector' - -```puppet -qdr_connector { 'anyConnector' : - addr => '10.10.10.10', - port => '1234', - role => 'inter_router', - max_frame_size => '65536', -} -``` - -### qdr\_listener - -Listens for incoming connection requests to the router - -Query all current listeners: '$puppet resource qdr_listener' - -```puppet -qdr_listener { 'anyListener' : - addr => '10.10.10.10', - port => '5678', - role => 'normal', - sasl_mechanisms => 'DIGEST-MD5,EXTERNAL', -} -``` - -### qdr\_log - -Control log settings for a particular module on the running router - -Query all current log module settings: '$puppet resource qdr_log' - -### qdr\_user - -Users for internal sasl authentication - -Query all current internal users: '$puppet resource qdr_user' - -```puppet -qdr_user { 'anyUser' : - password => 'changeme', -} -``` - -## Resource Providers - -### qdmanage - -An AMQP management client tool for used with any standard AMQP managed endpoint. - -## Limitations - -This module has been tested on the following platforms: - -* CentOS 7 -* Ubuntu 15.10 - - -### Apt module dependence - -If running Debian os family, puppetlabs-apt module is required - -## Development - -Developer documentation for the entire puppet-openstack project. - -* https://docs.openstack.org/puppet-openstack-guide/latest/ - -## Contributors - -* https://github.com/openstack/puppet-qdr/graphs/contributors - - -## Release Notes - - * https://docs.openstack.org/releasenotes/puppet-qdr - -Repository ----------- - -* https://opendev.org/openstack/puppet-qdr - -If you aren't using changelog, put your release notes here (though you should -consider using changelog). You may also add any additional sections you feel are -necessary or important to include here. Please use the `## ` header. diff --git a/README.rst b/README.rst new file mode 100644 index 0000000..543210d --- /dev/null +++ b/README.rst @@ -0,0 +1,8 @@ +This project is no longer maintained. + +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 openstack-discuss@lists.openstack.org +or join #openstack-dev on OFTC. diff --git a/Rakefile b/Rakefile deleted file mode 100644 index 168d108..0000000 --- a/Rakefile +++ /dev/null @@ -1 +0,0 @@ -require 'puppet-openstack_spec_helper/rake_tasks' diff --git a/bindep.txt b/bindep.txt deleted file mode 100644 index d6645f8..0000000 --- a/bindep.txt +++ /dev/null @@ -1,12 +0,0 @@ -# This is a cross-platform list tracking distribution packages needed by tests; -# see https://docs.openstack.org/infra/bindep/ for additional information. - -libxml2-devel [test platform:rpm] -libxml2-dev [test platform:dpkg] -libxslt-devel [test platform:rpm] -libxslt1-dev [test platform:dpkg] -ruby-devel [test platform:rpm] -ruby-dev [test platform:dpkg] -zlib1g-dev [test platform:dpkg] -zlib-devel [test platform:rpm] -puppet [build] diff --git a/doc/requirements.txt b/doc/requirements.txt deleted file mode 100644 index 592fa6b..0000000 --- a/doc/requirements.txt +++ /dev/null @@ -1,6 +0,0 @@ -# This is required for the docs build jobs -sphinx>=3.5.1 # BSD -openstackdocstheme>=2.2.7 # Apache-2.0 - -# This is required for the releasenotes build jobs -reno>=3.2.0 # Apache-2.0 diff --git a/examples/site.pp b/examples/site.pp deleted file mode 100644 index b92a47c..0000000 --- a/examples/site.pp +++ /dev/null @@ -1,23 +0,0 @@ -node default { - - # Qpid Dispatch Router common class - class { 'qdr' : - # Currently no mandatory parameters - } - - # Create a listener type -# qdr_listener { 'GoodListener' : -# ensure => present, -# addr => '127.0.0.1', -# port => '6789', -# role => 'normal', -# auth_peer => true, -# sasl_mechanisms => 'ANONYMOUS,DIGEST-MD5,EXTERNAL,PLAIN', -# } - - # Create a user for sasl db -# qdr_user { 'SaslUser' : -# ensure => present, -# password => 'testpw', -# } -} diff --git a/lib/puppet/provider/qdr_address/qdmanage.rb b/lib/puppet/provider/qdr_address/qdmanage.rb deleted file mode 100644 index 7d10f0d..0000000 --- a/lib/puppet/provider/qdr_address/qdmanage.rb +++ /dev/null @@ -1,101 +0,0 @@ -require "json" - -Puppet::Type.type(:qdr_address).provide(:qdmanage) do - - # should rely on environment rather fq path - commands :qdmanage => '/usr/bin/qdmanage' - - mk_resource_methods - - def initialize(value={}) - super(value) - @property_flush = {} - end - - def self.get_list_of_addresses - begin - @addresses=JSON.load(qdmanage('QUERY','--type=address')) - rescue Puppet::ExecutionFailure => e - @addresses = {} - end - end - - def self.get_address_properties(address) - address_properties = {} - - address_properties[:provider] = :qdmanage - address_properties[:ensure] = :present - address_properties[:name] = address["name"] - address_properties[:prefix] = address["prefix"] - address_properties[:distribution] = address["distribution"] - address_properties[:waypoint] = address["waypoint"].to_s - address_properties[:ingressPhase] = address["ingressPhase"] - address_properties[:egressPhase] = address["egressPhase"] - - address_properties - end - - def self.instances - addresses = [] - get_list_of_addresses.each do |address| - addresses << new( :prefix => address["prefix"], - :name => address["name"], - :ensure => :present, - :distribution => address["distribution"], - :waypoint => address["waypoint"].to_s, - :ingressPhase => address["ingressPhase"], - :egressPhase => address["egressPhase"]) - end - addresses - end - - def create - @property_flush[:ensure] = :present - end - - def exists? - @property_hash[:ensure] == :present - end - - def destroy - @property_flush[:ensure] = :absent - end - - def self.prefetch(resources) - instances.each do |prov| - if resource = resources[prov.prefix] - resource.provider = prov - end - end - end - - def set_address - # TODO(ansmith) - full CRUD once supported by qdmanage - if @property_flush[:ensure] == :absent - notice("Address destroy not supported") - return - end - - begin - # TODO(ansmith) - prefix uniqueness check - qdmanage('CREATE', - '--type=address', - '--prefix', - resource[:prefix], - 'distribution='+resource[:distribution], - 'waypoint='+resource[:waypoint].to_s, - 'ingressPhase='+resource[:ingressPhase], - 'egressPhase='+resource[:egressPhase]) - rescue Puppet::ExecutionFailure => e - return - end - - end - - def flush - set_address - - @property_hash = self.class.get_address_properties(resource[:prefix]) - end - -end diff --git a/lib/puppet/provider/qdr_connector/qdmanage.rb b/lib/puppet/provider/qdr_connector/qdmanage.rb deleted file mode 100644 index a834433..0000000 --- a/lib/puppet/provider/qdr_connector/qdmanage.rb +++ /dev/null @@ -1,111 +0,0 @@ -require "json" - -Puppet::Type.type(:qdr_connector).provide(:qdmanage) do - - # should rely on environment rather fq path - commands :qdmanage => '/usr/bin/qdmanage' - - mk_resource_methods - - def initialize(value={}) - super(value) - @property_flush = {} - end - - def self.get_list_of_connectors - begin - @connectors=JSON.load(qdmanage('QUERY','--type=connector')) - rescue Puppet::ExecutionFailure => e - @connectors = {} - end - end - - def self.get_connector_properties(connector) - connector_properties = {} - - connector_properties[:provider] = :qdmanage - connector_properties[:ensure] = :present - connector_properties[:name] = connector["name"] - connector_properties[:addr] = connector["addr"] - connector_properties[:port] = connector["port"] - connector_properties[:role] = connector["role"].to_s - connector_properties[:allow_redirect] = connector["allowRedirect"].to_s - connector_properties[:sasl_mechanisms] = connector["saslMechanisms"].to_s - connector_properties[:max_frame_size] = connector["maxFrameSize"].to_s - connector_properties[:idle_timeout_seconds] = connector["idleTimeoutSeconds"].to_s - connector_properties[:strip_annotations] = connector["stripAnnotations"].to_s - - connector_properties - end - - def self.instances - connectors = [] - get_list_of_connectors.each do |connector| - connectors << new(:name => connector["name"], - :ensure => :present, - :addr => connector["addr"], - :port => connector["port"], - :role => connector["role"].to_s, - :sasl_mechanisms => connector["saslMechanisms"].to_s, - :allow_redirect => connector["allowRedirect"].to_s, - :max_frame_size => connector["maxFrameSize"].to_s, - :idle_timeout_seconds => connector["idleTimeoutSeconds"].to_s, - :strip_annotations => connector["stripAnnotations"].to_s) - end - connectors - end - - def create - @property_flush[:ensure] = :present - end - - def exists? - @property_hash[:ensure] == :present - end - - def destroy - @property_flush[:ensure] = :absent - end - - def self.prefetch(resources) - instances.each do |prov| - if resource = resources[prov.name] - resource.provider = prov - end - end - end - - def set_connector - # TODO(ansmith) - full CRUD once supported by qdmanage - if @property_flush[:ensure] == :absent - notice("Connector destroy not supported") - return - end - - begin - # TODO(ansmith) - name, addr:port uniqueness check - qdmanage('CREATE', - '--type=connector', - '--name', - resource[:name], - 'addr='+resource[:addr], - 'port='+resource[:port], - 'role='+resource[:role].to_s, - 'saslMechanisms='+resource[:sasl_mechanisms].to_s, - 'allowRedirect='+resource[:allow_redirect].to_s, - 'maxFrameSize='+resource[:max_frame_size].to_s, - 'idleTimeoutSeconds='+resource[:idle_timeout_seconds].to_s, - 'stripAnnotations='+resource[:strip_annotations].to_s) - rescue Puppet::ExecutionFailure => e - return - end - - end - - def flush - set_connector - - @property_hash = self.class.get_connector_properties(resource[:name]) - end - -end diff --git a/lib/puppet/provider/qdr_listener/qdmanage.rb b/lib/puppet/provider/qdr_listener/qdmanage.rb deleted file mode 100644 index 8f21eb4..0000000 --- a/lib/puppet/provider/qdr_listener/qdmanage.rb +++ /dev/null @@ -1,111 +0,0 @@ -require "json" - -Puppet::Type.type(:qdr_listener).provide(:qdmanage) do - - # should rely on environment rather fq path - commands :qdmanage => '/usr/bin/qdmanage' - - mk_resource_methods - - def initialize(value={}) - super(value) - @property_flush = {} - end - - def self.get_list_of_listeners - begin - @listeners=JSON.load(qdmanage('QUERY','--type=listener')) - rescue Puppet::ExecutionFailure => e - @listeners = {} - end - end - - def self.get_listener_properties(listener) - listener_properties = {} - - listener_properties[:provider] = :qdmanage - listener_properties[:ensure] = :present - listener_properties[:name] = listener["name"] - listener_properties[:addr] = listener["addr"] - listener_properties[:port] = listener["port"] - listener_properties[:role] = listener["role"].to_s - listener_properties[:sasl_mechanisms] = listener["saslMechanisms"].to_s - listener_properties[:auth_peer] = listener["authenticatePeer"].to_s - listener_properties[:require_encryption] = listener["requireEncryption"].to_s - listener_properties[:require_ssl] = listener["requireSsl"].to_s - listener_properties[:max_frame_size] = listener["maxFrameSize"].to_s - - listener_properties - end - - def self.instances - listeners = [] - get_list_of_listeners.each do |listener| - listeners << new( :name => listener["name"], - :ensure => :present, - :addr => listener["addr"], - :port => listener["port"], - :role => listener["role"].to_s, - :sasl_mechanisms => listener["saslMechanisms"].to_s, - :auth_peer => listener["authenticatePeer"].to_s, - :require_encryption => listener["requireEncryption"].to_s, - :require_ssl => listener["requireSsl"].to_s, - :max_frame_size => listener["maxFrameSize"].to_s) - end - listeners - end - - def create - @property_flush[:ensure] = :present - end - - def exists? - @property_hash[:ensure] == :present - end - - def destroy - @property_flush[:ensure] = :absent - end - - def self.prefetch(resources) - instances.each do |prov| - if resource = resources[prov.name] - resource.provider = prov - end - end - end - - def set_listener - # TODO(ansmith) - full CRUD once supported by qdmanage - if @property_flush[:ensure] == :absent - notice("Listener destroy not supported") - return - end - - begin - # TODO(ansmith) - name, addr:port uniqueness check - qdmanage('CREATE', - '--type=listener', - '--name', - resource[:name], - 'addr='+resource[:addr], - 'port='+resource[:port], - 'role='+resource[:role].to_s, - 'saslMechanisms='+resource[:sasl_mechanisms].to_s, - 'authenticatePeer='+resource[:auth_peer].to_s, - 'requireEncryption='+resource[:require_encryption].to_s, - 'requireSsl='+resource[:require_ssl].to_s, - 'maxFrameSize='+resource[:max_frame_size].to_s) - rescue Puppet::ExecutionFailure => e - return - end - - end - - def flush - set_listener - - @property_hash = self.class.get_listener_properties(resource[:name]) - end - -end diff --git a/lib/puppet/provider/qdr_log/qdmanage.rb b/lib/puppet/provider/qdr_log/qdmanage.rb deleted file mode 100644 index b808949..0000000 --- a/lib/puppet/provider/qdr_log/qdmanage.rb +++ /dev/null @@ -1,83 +0,0 @@ -require "json" - -Puppet::Type.type(:qdr_log).provide(:qdmanage) do - - # should rely on environment rather fq path - commands :qdmanage => '/usr/bin/qdmanage' - - mk_resource_methods - - def initialize(value={}) - super(value) - @property_flush = {} - end - - def self.get_list_of_loggers - begin - @loggers=JSON.load(qdmanage('QUERY','--type=log')) - rescue Puppet::ExecutionFailure => e - @loggers = {} - end - end - - def self.get_logger_properties(listener) - logger_properties = {} - - logger_properties[:provider] = :qdmanage - logger_properties[:name] = logger["name"] - logger_properties[:module] = logger["module"] - - logger_properties - end - - def self.instances - loggers = [] - get_list_of_loggers.each do |logger| - loggers << new( :name => logger["name"], - :module => logger["module"]) - end - loggers - end - -# def create -# @property_flush[:ensure] = :present -# end - - def exists? - @property_hash[:ensure] == :present - end - -# def destroy -# @property_flush[:ensure] = :absent -# end - - def self.prefetch(resources) - instances.each do |prov| - if resource = resources[prov.name] - resource.provider = prov - end - end - end - - def set_logger - # TODO(ansmith) - full CRUD once supported by qdmanage - - begin - # TODO(ansmith) - name, addr:port uniqueness check - qdmanage('UPDATE', - '--type=log', - '--name', - resource[:name]) - rescue Puppet::ExecutionFailure => e - return - end - - end - - def flush - set_logger - - @property_hash = self.class.get_logger_properties(resource[:name]) - end - -end diff --git a/lib/puppet/provider/qdr_user/sasl.rb b/lib/puppet/provider/qdr_user/sasl.rb deleted file mode 100644 index faccf42..0000000 --- a/lib/puppet/provider/qdr_user/sasl.rb +++ /dev/null @@ -1,44 +0,0 @@ - -Puppet::Type.type(:qdr_user).provide(:sasl) do - - commands :saslpasswd2 => 'saslpasswd2' - optional_commands :sasldblistusers2 => 'sasldblistusers2' - - def self.instances - users = [] - userlist=sasldblistusers2('-f', '/var/lib/qdrouterd/qdrouterd.sasldb').split(/\n/).each do |line| - if line =~ /^(\S+)@(\S+):.*$/ - users << new(:name => $1, - :ensure => :present) - else - raise Puppet::Error, "Cannot parse invalid user line: #{line}" - end - end - users - end - - def create - # is there a way to pipe to commands? - if not system(%{echo "#{resource[:password]}" | saslpasswd2 -f '/var/lib/qdrouterd/qdrouterd.sasldb' #{resource[:name]}}) - - raise Puppet::Error, "Failed to create user" - end - system("chmod '0644' '/var/lib/qdrouterd/qdrouterd.sasldb'") - end - - def destroy - saslpasswd2('-f', '/var/lib/qdrouterd/qdrouterd.sasldb', '-d', resource[:name]) - rescue Puppet::ExecutionFailure => e - return - end - - def exists? - begin - users = sasldblistusers2('-f', "/var/lib/qdrouterd/qdrouterd.sasldb").split(/\n/).detect do |user| - user.match(/^#{resource[:name]}@.*$/) - end - rescue - return false - end - end -end diff --git a/lib/puppet/type/qdr_address.rb b/lib/puppet/type/qdr_address.rb deleted file mode 100644 index 5f60062..0000000 --- a/lib/puppet/type/qdr_address.rb +++ /dev/null @@ -1,58 +0,0 @@ -Puppet::Type.newtype(:qdr_address) do - desc "Type for managing qdrouterd address prefixes for distribution and phasing" - - ensurable do - defaultto(:present) - newvalue(:present) do - provider.create - end - newvalue(:absent) do - provider.destroy - end - end - - autorequire(:service) { 'qdrouterd' } - - newparam(:name, :namevar => true) do - desc "The name of the address prefix" - newvalues(/^\S+$/) - end - - newproperty(:prefix) do - desc "The unique prefix for the address-space" - newvalues(/^\S+$/) - end - - newproperty(:distribution) do - desc "The treatment of traffic associated with the address" - defaultto :balanced - newvalues(:balanced, :closest, :multicast) - end - - newproperty(:waypoint) do - defaultto :false - newvalues(:true, :false) - - def should_to_s(value) - value.inspect - end - - def is_to_s(value) - value.inspect - end - - end - - newproperty(:ingressPhase) do - desc "Override for the ingress phase for this address" - defaultto ('0') -# newvalues(/^d+/) - end - - newproperty(:egressPhase) do - desc "Override for the ingress phase for this address" - defaultto ('0') -# newvalues(/^d+/) - end - -end diff --git a/lib/puppet/type/qdr_connector.rb b/lib/puppet/type/qdr_connector.rb deleted file mode 100644 index 9588691..0000000 --- a/lib/puppet/type/qdr_connector.rb +++ /dev/null @@ -1,86 +0,0 @@ -Puppet::Type.newtype(:qdr_connector) do - desc "Type for managing qdrouterd connection instances" - - ensurable do - defaultto(:present) - newvalue(:present) do - provider.create - end - newvalue(:absent) do - provider.destroy - end - end - - autorequire(:service) { 'qdrouterd' } - - newparam(:name, :namevar => true) do - desc "The unique name for the connector" - newvalues(/^\s*\S+\s*$/) - end - - newproperty(:addr) do - desc "The outgoing connection host's IP address, IPv4 or IPv6" - end - - newproperty(:port) do - desc "The outgoing connection host port number" - newvalues(/^\d+/) - end - - newproperty(:role) do - desc "The role for connections established by the listener" - defaultto :normal - newvalues(:normal, :inter_router, :on_demand) - end - - newproperty(:sasl_mechanisms) do - desc "List of accepted SASL authentication mechansisms" - defaultto "ANONYMOUS,DIGEST-MD5,EXTERNAL,PLAIN" - end - - newproperty(:allowRedirect) do - defaultto :false - newvalues(:true, :false) - - def should_to_s(value) - value.inspect - end - - def is_to_s(value) - value.inspect - end - end - - newproperty(:max_frame_size) do - desc "The largest contiguous set of uninterrupted data that can be sent" - defaultto ('65536') - - validate do |value| - unless value =~ /\d{1,5}/ && - value.to_i <= 65536 - fail("Invalid max frame size #{value}") - end - end - end - - newproperty(:idle_timeout_seconds) do - desc "The largest contiguous set of uninterrupted data that can be sent" - defaultto ('16') - - # what would the validation be? Max timeout value? - end - - newproperty(:strip_annotations) do - defaultto :both - newvalues(:in, :out, :both, :no) - - def should_to_s(value) - value.inspect - end - - def is_to_s(value) - value.inspect - end - end - -end diff --git a/lib/puppet/type/qdr_listener.rb b/lib/puppet/type/qdr_listener.rb deleted file mode 100644 index f480eb6..0000000 --- a/lib/puppet/type/qdr_listener.rb +++ /dev/null @@ -1,97 +0,0 @@ -Puppet::Type.newtype(:qdr_listener) do - desc "Type for managing qdrouterd listener instances" - - ensurable do - defaultto(:present) - newvalue(:present) do - provider.create - end - newvalue(:absent) do - provider.destroy - end - end - - autorequire(:service) { 'qdrouterd' } - - newparam(:name, :namevar => true) do - desc "The unique name for the listener" - newvalues(/^\S+$/) - end - - newproperty(:addr) do - desc "The listening host's IP address, IPv4 or IPv6" - end - - newproperty(:port) do - desc "The listening port number on the host" - end - - newproperty(:role) do - desc "The role for connections established by the listener" - defaultto :normal - newvalues(:normal, :inter_router, :on_demand) - end - - newproperty(:sasl_mechanisms) do - desc "List of accepted SASL authentication mechansisms" - defaultto "ANONYMOUS,DIGEST-MD5,EXTERNAL,PLAIN" - end - - newproperty(:auth_peer) do - defaultto :false - newvalues(:true, :false) - - def should_to_s(value) - value.inspect - end - - def is_to_s(value) - value.inspect - end - - end - - newproperty(:require_encryption) do - desc "Require the connection to the peer to be encryped" - defaultto :false - newvalues(:true, :false) - - def should_to_s(value) - value.inspect - end - - def is_to_s(value) - value.inspect - end - - end - - newproperty(:require_ssl) do - desc "Require the use of SSL or TLS on the connection" - defaultto :false - newvalues(:true, :false) - - def should_to_s(value) - value.inspect - end - - def is_to_s(value) - value.inspect - end - - end - - newproperty(:max_frame_size) do - desc "The largest contiguous set of uninterrupted data that can be sent" - defaultto ('65536') - - validate do |value| - unless value =~ /\d{1,5}/ && - value.to_i <= 65536 - fail("Invalid max frame size #{value}") - end - end - end - - -end diff --git a/lib/puppet/type/qdr_log.rb b/lib/puppet/type/qdr_log.rb deleted file mode 100644 index a8ea356..0000000 --- a/lib/puppet/type/qdr_log.rb +++ /dev/null @@ -1,24 +0,0 @@ -Puppet::Type.newtype(:qdr_log) do - desc "Type for managing qdrouterd module log instances" - - ensurable do - defaultto(:present) - newvalue(:present) do - provider.create - end - newvalue(:absent) do - provider.destroy - end - end - - autorequire(:service) { 'qdrouterd' } - - newparam(:name, :namevar => true) do - desc "The unique name for the log module" - end - - newproperty(:module) do - desc "The qdrouterd log module source" - end - -end diff --git a/lib/puppet/type/qdr_user.rb b/lib/puppet/type/qdr_user.rb deleted file mode 100644 index 7f3d4e7..0000000 --- a/lib/puppet/type/qdr_user.rb +++ /dev/null @@ -1,31 +0,0 @@ -Puppet::Type.newtype(:qdr_user) do - desc "Type for managing qdr users such as with sasl provider, etc." - - ensurable do - defaultto(:present) - newvalue(:present) do - provider.create - end - newvalue(:absent) do - provider.destroy - end - end - - autorequire(:service) { 'qdrouterd' } - - newparam(:name, :namevar => true) do - desc "The name of user" - newvalues(/^\S+$/) - end - - newparam(:password) do - desc "The user password to be set on creation" - end - - validate do - if self[:ensure] == :present and ! self[:password] - raise Puppet::Error => 'Must set password when creating user' unless self[:password] - end - end - -end diff --git a/manifests/config.pp b/manifests/config.pp deleted file mode 100644 index 2423df1..0000000 --- a/manifests/config.pp +++ /dev/null @@ -1,61 +0,0 @@ -# == Class qdr::config -# -# This class is called from qdr for qdrouterd service configuration -# -class qdr::config inherits qdr { - - $service_config_path = $::qdr::params::service_config_path - $service_home = $::qdr::params::service_home - $log_output = $::qdr::log_output - $router_debug_dump = $::qdr::router_debug_dump - $service_config_template = 'qdr/qdrouterd.conf.erb' - - file { $service_home : - ensure => directory, - owner => '0', - group => '0', - mode => '0755', - } - - file { '/etc/qpid-dispatch' : - ensure => directory, - owner => '0', - group => '0', - mode => '0644', - } - - file { '/etc/qpid-dispatch/ssl' : - ensure => directory, - owner => '0', - group => '0', - mode => '0644', - } - - $show_diff = ($::qdr::listener_ssl_password == undef) - - file { 'qdrouterd.conf' : - ensure => file, - path => $service_config_path, - content => template($service_config_template), - owner => '0', - group => '0', - mode => '0644', - show_diff => $show_diff, - notify => Class['qdr::service'], - } - - file { $router_debug_dump : - ensure => directory, - owner => '0', - group => '0', - mode => '0766', - } - - file { $log_output : - ensure => file, - owner => '0', - group => '0', - mode => '0666', - } - -} diff --git a/manifests/init.pp b/manifests/init.pp deleted file mode 100644 index 6c6be77..0000000 --- a/manifests/init.pp +++ /dev/null @@ -1,208 +0,0 @@ -# == Class: qdr -# -# Full description of class qdr here. -# -# === Parameters -# -# [*connectors*] -# (optional) An array of hashes containing connector configuration -# Defaults to [] -# -# [*ssl_profiles*] -# (optional) An array of hashes containing the ssl profiles -# Defaults to [] -# -# [*ensure_package*] -# (optional) The state of the qdr packages -# Defaults to 'installed' -# -# [*ensure_service*] -# (optional) The state of the qdr service -# Defaults to 'running' -# -# [*enable_service*] -# (optional) The administrative status of the qdr service -# Defaults to 'true' -# -# [*extra_listeners*] -# (optional) An array of hashes containing extra listener configuration -# Defaults to [] -# -# [*listener_addr*] -# (optional) Service host name -# Defaults to '127.0.0.1' -# -# [*listener_auth_peer*] -# (optional) -# Defaults to false -# -# [*listener_idle_timeout*] -# (optional) -# Defaults to '16' -# -# [*listener_max_frame_size*] -# (optional) Maximum frame size used for a message delivery over the -# connection -# Defaults to '16384' -# -# [*listener_port*] -# (optional) Service port number (AMQP) -# Defaults to '5672' -# -# [*listener_require_encrypt*] -# (optional) Require the connection to the peer to be encrypted -# Defaults to false -# -# [*listener_require_ssl*] -# (optional) Require the use of SSL or TLS on the connection -# Defaults to false -# -# [*listener_sasl_mech*] -# (optional) List of accepted SASL auth mechanisms -# Defaults to 'ANONYMOUS' -# -# [*listener_ssl_cert_db*] -# (optional) Path to certificate db -# Defaults to undef -# -# [*listener_ssl_cert_file*] -# (optional) Path to certificat file -# Defaults to undef -# -# [*listener_ssl_key_file*] -# (optional) Path to private key file -# Defaults to undef -# -# [*listener_ssl_pw_file*] -# (optional) Path to password file for certificate key -# Defaults to undef -# -# [*listener_ssl_password*] -# (optional) Password to be supplied -# Defaults to undef -# -# [*listener_trusted_certs*] -# (optional) Path to file containing trusted certificates -# Defaults to 'UNSET' -# -# [*autolink_addresses*] -# (optional) An array of hashes containing the autoLink addresses -# Defaults to [] -# -# [*extra_addresses*] -# (optional) An array of hashes containing extra address configuration -# Defaults to [] -# -# [*log_module*] -# (optional) The log module to configure -# Defaults to 'DEFAULT' -# -# [*log_enable*] -# (optional) Log level for a module -# Defaults to 'debug+' -# -# [*log_output*] -# (optional) Target destination for log message -# Defaults to '/var/log/qdrouterd/qdrouterd.log' -# -# [*router_debug_dump*] -# (optional) Path to file for debugging information -# Defaults to '/var/log/qdrouterd' -# -# [*router_hello_interval*] -# (optional) Router HELLO message interval in seconds -# Defaults to 1 -# -# [*router_hello_max_age*] -# (optional) Neighbor router age timeout in seconds -# Defaults to 3 -# -# [*router_id*] -# (optional) Router unique identifer -# Defaults to 'Router.fqdn" -# -# [*router_mode*] -# (optional) Operational mode for Router (standalone, edge or interconnected) -# Defaults to 'standalone' -# -# [*router_ra_interval*] -# (optional) Router advertisement interval -# Defaults to 30 -# -# [*router_ra_interval_flux*] -# (optional) Router advertisement interval during topology changes -# Defaults to 4 -# -# [*router_remote_ls_max_age*] -# (optional) Router advertisement aging interval -# Defaults to 60 -# -# [*router_sasl_name*] -# (optional) Name of SASL configuration -# Defaults to 'qdrouterd' -# -# [*router_sasl_path*] -# (optional) Path to the SASL configuration file -# Defaults to '/etc/sasl2' -# -# [*router_worker_threads*] -# (optional) Number of threads create to process message traffic -# Defaults to $::facts['processors']['count'] -# -class qdr( - Array[Hash[String[1], Scalar]] $connectors = [], - Array[Hash[String[1], Scalar]] $ssl_profiles = [], - String $ensure_package = 'installed', - String $ensure_service = 'running', - Boolean $enable_service = true, - Array[Hash[String[1], String[1]]] $extra_listeners = [], - String $listener_addr = '127.0.0.1', - Boolean $listener_auth_peer = false, - Integer $listener_idle_timeout = 16, - Integer $listener_max_frame_size = 16384, - Integer $listener_port = 5672, - Boolean $listener_require_encrypt = false, - Boolean $listener_require_ssl = false, - String $listener_sasl_mech = 'ANONYMOUS', - Optional[Stdlib::Absolutepath] $listener_ssl_cert_db = undef, - Optional[Stdlib::Absolutepath] $listener_ssl_cert_file = undef, - Optional[Stdlib::Absolutepath] $listener_ssl_key_file = undef, - Optional[Stdlib::Absolutepath] $listener_ssl_pw_file = undef, - Optional[String] $listener_ssl_password = undef, - String $listener_trusted_certs = 'UNSET', - Array[Hash[String[1], Scalar]] $autolink_addresses = [], - Array[Hash[String[1], Scalar]] $extra_addresses = [], - String $log_enable = 'debug+', - String $log_module = 'DEFAULT', - Stdlib::Absolutepath $log_output = '/var/log/qdrouterd/qdrouterd.log', - Stdlib::Absolutepath $router_debug_dump = '/var/log/qdrouterd', - Integer $router_hello_interval = 1, - Integer $router_hello_max_age = 3, - String $router_id = "Router.${facts['networking']['fqdn']}", - Enum['standalone', 'edge', 'interior'] $router_mode = 'standalone', - Integer $router_ra_interval = 30, - Integer $router_ra_interval_flux = 4, - Integer $router_remote_ls_max_age = 60, - String[1] $router_sasl_name = 'qdrouterd', - Stdlib::Absolutepath $router_sasl_path = '/etc/sasl2', - Integer $router_worker_threads = $facts['processors']['count'], -) inherits qdr::params { - -# TODO (ansmith) - manage repo via openstack-extras -# if $facts['os']['name'] == 'Ubuntu' { -# include apt -# -# Class['apt::update'] -> Package<| provider == 'apt' |> -# -# apt::ppa { 'ppa:qpid/testing' : } -# } - - include qdr::install - include qdr::config - include qdr::service - - Class['qdr::install'] - -> Class['qdr::config'] - -> Class['qdr::service'] - -} diff --git a/manifests/install.pp b/manifests/install.pp deleted file mode 100644 index ded1d5c..0000000 --- a/manifests/install.pp +++ /dev/null @@ -1,53 +0,0 @@ -# == Class qdr::install -# -# This class is called from qdr for qdrouterd service installation -# -# === Parameters -# -# [*ensure_package*] -# (optional) The state of the qdr packages -# Defaults to $::qdr::ensure_package -# -# [*service_package_name*] -# (optional) The service package name for osfamily -# Defaults to $::qdr::params::service_package_name -# -# [*package_provider*] -# (optional) The package repo application for osfamily -# Defaults to $::qdr::params::package_provider -# -# [*sasl_package_list*] -# (optional) The sasl package enumeration for osfamily -# Defaults to $::qdr::params::sasl_package_list -# -# [*tools_package_list*] -# (optional) The qdr tools package enumeration for osfamily -# Defaults to $::qdr::params::tools_package_list -# -class qdr::install ( - String $ensure_package = $::qdr::ensure_package, - String $service_package_name = $::qdr::params::service_package_name, - String $package_provider = $::qdr::params::package_provider, - Variant[String[1], Array[String[1]]] $sasl_package_list = $::qdr::params::sasl_package_list, - Variant[String[1], Array[String[1]]] $tools_package_list = $::qdr::params::tools_package_list, -) inherits qdr { - - package { $sasl_package_list : - ensure => $ensure_package, - provider => $package_provider, - } - - package { $service_package_name : - ensure => $ensure_package, - provider => $package_provider, - notify => Class['qdr::service'], - require => Package[$sasl_package_list], - } - - package { $tools_package_list : - ensure => $ensure_package, - provider => $package_provider, - require => Package[$service_package_name], - } - -} diff --git a/manifests/params.pp b/manifests/params.pp deleted file mode 100644 index 7315074..0000000 --- a/manifests/params.pp +++ /dev/null @@ -1,37 +0,0 @@ -# Class: qdr::params -# -# The Qpid Dispatch Router Module configuration settings -# -class qdr::params { - - case $facts['os']['family'] { - 'Debian': { - $service_package_name = 'qdrouterd' - $service_name = 'qdrouterd' - $service_config_path = '/etc/qpid-dispatch/qdrouterd.conf' - $package_provider = 'apt' - $service_user = 'qdrouterd' - $service_group = 'qdrouterd' - $service_home = '/var/lib/qdrouterd' - $service_version = '1.5.0' - $sasl_package_list = 'sasl2-bin' - $tools_package_list = [ 'qdmanage' , 'qdstat' ] - } - 'RedHat': { - $service_package_name = 'qpid-dispatch-router' - $service_name = 'qdrouterd' - $service_config_path = '/etc/qpid-dispatch/qdrouterd.conf' - $package_provider = 'dnf' - $service_user = 'qdrouterd' - $service_group = 'qdrouterd' - $service_home = '/var/lib/qdrouterd' - $service_version = '1.5.0' - $sasl_package_list = [ 'cyrus-sasl-lib', 'cyrus-sasl-plain' ] - $tools_package_list = [ 'qpid-dispatch-tools' ] - } - default: { - fail("Unsupported osfamily: ${facts['os']['family']}") - } - } - -} diff --git a/manifests/service.pp b/manifests/service.pp deleted file mode 100644 index 5a92ea8..0000000 --- a/manifests/service.pp +++ /dev/null @@ -1,17 +0,0 @@ -# == Class qdr::service -# -# This class is called from qdr for qdrouterd service management -class qdr::service inherits qdr { - - $enable_service = $::qdr::enable_service - $ensure_service = $::qdr::ensure_service - $service_name = $::qdr::params::service_name - - service { $service_name: - ensure => $ensure_service, - enable => $enable_service, - hasstatus => true, - hasrestart => true, - } - -} diff --git a/metadata.json b/metadata.json deleted file mode 100644 index 496bc8f..0000000 --- a/metadata.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "name": "openstack-qdr", - "version": "12.0.0", - "author": "OpenStack Contributors", - "summary": "Puppet Qpid Dispatch Router Module", - "license": "Apache-2.0", - "source": "https://opendev.org/openstack/puppet-qdr.git", - "project_page": "https://launchpad.net/puppet-qdr", - "issues_url": "https://bugs.launchpad.net/puppet-qdr", - "requirements": [ - { - "name": "puppet", - "version_requirement": ">= 7.0.0 < 8.0.0" - } - ], - "operatingsystem_support": [ - { - "operatingsystem": "Debian", - "operatingsystemrelease": [ - "12" - ] - }, - { - "operatingsystem": "RedHat", - "operatingsystemrelease": [ - "9" - ] - }, - { - "operatingsystem": "CentOS", - "operatingsystemrelease": [ - "9" - ] - }, - { - "operatingsystem": "Ubuntu", - "operatingsystemrelease": [ - "22.04" - ] - } - ], - "description": "Puppet module to add useful utilities for OpenStack deployments", - "dependencies": [ - { - "name": "puppetlabs/apt", - "version_requirement": ">=1.8.0 <10.0.0" - }, - { - "name": "puppetlabs/stdlib", - "version_requirement": ">=5.0.0 <10.0.0" - } - ] -} diff --git a/releasenotes/notes/bug-2012200-e1ad2cf50200b566.yaml b/releasenotes/notes/bug-2012200-e1ad2cf50200b566.yaml deleted file mode 100644 index 6cd08f1..0000000 --- a/releasenotes/notes/bug-2012200-e1ad2cf50200b566.yaml +++ /dev/null @@ -1,15 +0,0 @@ ---- -fixes: - - | - Fixed the following ``qdr`` claas parameters ignored. - - - ``router_hello_interval`` - - ``router_hello_max_age`` - - ``router_ra_interval`` - - ``router_ra_interval_flux`` - - ``router_remote_ls_max_age`` - - ``listener_idle_timeout`` - - ``listener_max_frame_size`` - - ``listener_require_encrypt`` - - ``listener_ssl_pw_file`` - - ``listener_ssl_password`` diff --git a/releasenotes/notes/bug-2023371-6b0128faa9fdb2fc.yaml b/releasenotes/notes/bug-2023371-6b0128faa9fdb2fc.yaml deleted file mode 100644 index ca3c36e..0000000 --- a/releasenotes/notes/bug-2023371-6b0128faa9fdb2fc.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -fixes: - - | - Default value of the ``qdr::router_worker_threads`` parameter now matches - processor counts. diff --git a/releasenotes/notes/centos-9-support-de49876a4ebbc69f.yaml b/releasenotes/notes/centos-9-support-de49876a4ebbc69f.yaml deleted file mode 100644 index c3876a0..0000000 --- a/releasenotes/notes/centos-9-support-de49876a4ebbc69f.yaml +++ /dev/null @@ -1,4 +0,0 @@ ---- -features: - - | - Now this module supports CentOS 9 and Red Hat Enterprise Linux 9. diff --git a/releasenotes/notes/drop-fedora-1dc8de9b3efb46ef.yaml b/releasenotes/notes/drop-fedora-1dc8de9b3efb46ef.yaml deleted file mode 100644 index 71818df..0000000 --- a/releasenotes/notes/drop-fedora-1dc8de9b3efb46ef.yaml +++ /dev/null @@ -1,4 +0,0 @@ ---- -upgrade: - - | - Fedora is no longer supported. diff --git a/releasenotes/notes/force-boolean-1c3c7a389e0e46e2.yaml b/releasenotes/notes/force-boolean-1c3c7a389e0e46e2.yaml deleted file mode 100644 index 84c6729..0000000 --- a/releasenotes/notes/force-boolean-1c3c7a389e0e46e2.yaml +++ /dev/null @@ -1,9 +0,0 @@ ---- -upgrade: - - | - The following parameters no longer accept string values(`yes` and `no`) and - requires boolean values. - - - ``qdr::listener_auth_peer`` - - ``qdr::listener_require_encrypt`` - - ``qdr::listener_require_ssl`` diff --git a/releasenotes/notes/remove-centos-8-f59832c8454b7b7e.yaml b/releasenotes/notes/remove-centos-8-f59832c8454b7b7e.yaml deleted file mode 100644 index 7451387..0000000 --- a/releasenotes/notes/remove-centos-8-f59832c8454b7b7e.yaml +++ /dev/null @@ -1,4 +0,0 @@ ---- -upgrade: - - | - CentOS 8 Stream is no longer supported by this module. diff --git a/releasenotes/notes/remove-puppet-6-92b26030eeafd608.yaml b/releasenotes/notes/remove-puppet-6-92b26030eeafd608.yaml deleted file mode 100644 index 78061d5..0000000 --- a/releasenotes/notes/remove-puppet-6-92b26030eeafd608.yaml +++ /dev/null @@ -1,4 +0,0 @@ ---- -upgrade: - - | - Puppet 6 is no longer supported. diff --git a/releasenotes/notes/ubuntu-jammy-9d3bb20447bd78c5.yaml b/releasenotes/notes/ubuntu-jammy-9d3bb20447bd78c5.yaml deleted file mode 100644 index b6e0f8a..0000000 --- a/releasenotes/notes/ubuntu-jammy-9d3bb20447bd78c5.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -features: - - | - This module now supports Ubuntu 22.04 (Jammy Jellyfish). - -upgrade: - - | - This module no longer supports Ubuntu 20.04 (Focal Fossa). diff --git a/releasenotes/notes/use-boolean-instead-of-yes-no-adab525870358974.yaml b/releasenotes/notes/use-boolean-instead-of-yes-no-adab525870358974.yaml deleted file mode 100644 index c38ee1b..0000000 --- a/releasenotes/notes/use-boolean-instead-of-yes-no-adab525870358974.yaml +++ /dev/null @@ -1,10 +0,0 @@ ---- -deprecations: - - | - Expected type of the following parameters has been changed from string to - boolean. Usage of ``yes`` or ``no`` is still supported but deprecated, - and will be removed in a future release. - - - ``qdr::listener_auth_peer`` - - ``qdr::listener_require_encrypt`` - - ``qdr::listener_require_ssl`` diff --git a/releasenotes/source/2023.1.rst b/releasenotes/source/2023.1.rst deleted file mode 100644 index d123847..0000000 --- a/releasenotes/source/2023.1.rst +++ /dev/null @@ -1,6 +0,0 @@ -=========================== -2023.1 Series Release Notes -=========================== - -.. release-notes:: - :branch: stable/2023.1 diff --git a/releasenotes/source/2023.2.rst b/releasenotes/source/2023.2.rst deleted file mode 100644 index a4838d7..0000000 --- a/releasenotes/source/2023.2.rst +++ /dev/null @@ -1,6 +0,0 @@ -=========================== -2023.2 Series Release Notes -=========================== - -.. release-notes:: - :branch: stable/2023.2 diff --git a/releasenotes/source/_static/.placeholder b/releasenotes/source/_static/.placeholder deleted file mode 100644 index e69de29..0000000 diff --git a/releasenotes/source/conf.py b/releasenotes/source/conf.py deleted file mode 100644 index 23ea76a..0000000 --- a/releasenotes/source/conf.py +++ /dev/null @@ -1,254 +0,0 @@ -# -*- coding: utf-8 -*- -# 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. -# - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -#sys.path.insert(0, os.path.abspath('.')) - -# -- General configuration ------------------------------------------------ - - -# If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. -extensions = [ - 'openstackdocstheme', - 'reno.sphinxext', -] - -# Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] - -# The suffix of source filenames. -source_suffix = '.rst' - -# The encoding of source files. -#source_encoding = 'utf-8-sig' - -# The master toctree document. -master_doc = 'index' - -# General information about the project. -copyright = '2017, Puppet OpenStack Developers' - -# Release do not need a version number in the title, they -# cover multiple versions. -# The short X.Y version. -version = '' -# The full version, including alpha/beta/rc tags. -release = '' - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -#language = None - -# There are two options for replacing |today|: either, you set today to some -# non-false value, then it is used: -#today = '' -# Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -exclude_patterns = [] - -# The reST default role (used for this markup: `text`) to use for all -# documents. -#default_role = None - -# If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -#add_module_names = True - -# If true, sectionauthor and moduleauthor directives will be shown in the -# output. They are ignored by default. -#show_authors = False - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'native' - -# A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] - -# If true, keep warnings as "system message" paragraphs in the built documents. -#keep_warnings = False - - -# -- Options for HTML output ---------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -html_theme = 'openstackdocs' - -# Theme options are theme-specific and customize the look and feel of a theme -# further. For a list of options available for each theme, see the -# documentation. -#html_theme_options = {} - -# Add any paths that contain custom themes here, relative to this directory. -# html_theme_path = [] - -# The name for this set of Sphinx documents. If None, it defaults to -# " v documentation". -#html_title = None - -# A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None - -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -#html_logo = None - -# The name of an image file (within the static path) to use as favicon of the -# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 -# pixels large. -#html_favicon = None - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] - -# Add any extra paths that contain custom files (such as robots.txt or -# .htaccess) here, relative to this directory. These files are copied -# directly to the root of the documentation. -#html_extra_path = [] - -# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, -# using the given strftime format. - -# If true, SmartyPants will be used to convert quotes and dashes to -# typographically correct entities. -#html_use_smartypants = True - -# Custom sidebar templates, maps document names to template names. -#html_sidebars = {} - -# Additional templates that should be rendered to pages, maps page names to -# template names. -#html_additional_pages = {} - -# If false, no module index is generated. -#html_domain_indices = True - -# If false, no index is generated. -#html_use_index = True - -# If true, the index is split into individual pages for each letter. -#html_split_index = False - -# If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True - -# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True - -# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True - -# If true, an OpenSearch description file will be output, and all pages will -# contain a tag referring to it. The value of this option must be the -# base URL from which the finished HTML is served. -#html_use_opensearch = '' - -# This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None - -# Output file base name for HTML help builder. -htmlhelp_basename = 'puppet-qdrReleaseNotesdoc' - - -# -- Options for LaTeX output --------------------------------------------- - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, -# author, documentclass [howto, manual, or own class]). -latex_documents = [ - ('index', 'puppet-qdrReleaseNotes.tex', 'puppet-qdr Release Notes Documentation', - '2017, Puppet OpenStack Developers', 'manual'), -] - -# The name of an image file (relative to this directory) to place at the top of -# the title page. -#latex_logo = None - -# For "manual" documents, if this is true, then toplevel headings are parts, -# not chapters. -#latex_use_parts = False - -# If true, show page references after internal links. -#latex_show_pagerefs = False - -# If true, show URL addresses after external links. -#latex_show_urls = False - -# Documents to append as an appendix to all manuals. -#latex_appendices = [] - -# If false, no module index is generated. -#latex_domain_indices = True - - -# -- Options for manual page output --------------------------------------- - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -man_pages = [ - ('index', 'puppet-qdrreleasenotes', 'puppet-qdr Release Notes Documentation', - ['2017, Puppet OpenStack Developers'], 1) -] - -# If true, show URL addresses after external links. -#man_show_urls = False - - -# -- Options for Texinfo output ------------------------------------------- - -# Grouping the document tree into Texinfo files. List of tuples -# (source start file, target name, title, author, -# dir menu entry, description, category) -texinfo_documents = [ - ('index', 'puppet-qdrReleaseNotes', 'puppet-qdr Release Notes Documentation', - '2017, Puppet OpenStack Developers', 'puppet-qdrReleaseNotes', 'One line description of project.', - 'Miscellaneous'), -] - -# Documents to append as an appendix to all manuals. -#texinfo_appendices = [] - -# If false, no module index is generated. -#texinfo_domain_indices = True - -# How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' - -# If true, do not generate a @detailmenu in the "Top" node's menu. -#texinfo_no_detailmenu = False - -# -- Options for Internationalization output ------------------------------ -locale_dirs = ['locale/'] - -# openstackdocstheme options -openstackdocs_repo_name = 'openstack/puppet-qdr' -openstackdocs_bug_project = 'puppet-qdr' -openstackdocs_bug_tag = '' -openstackdocs_auto_name = False diff --git a/releasenotes/source/index.rst b/releasenotes/source/index.rst deleted file mode 100644 index 572b3c5..0000000 --- a/releasenotes/source/index.rst +++ /dev/null @@ -1,29 +0,0 @@ -======================================= -Welcome to qdr Release Notes! -======================================= - -Contents -======== - -.. toctree:: - :maxdepth: 2 - - unreleased - 2023.2 - 2023.1 - zed - yoga - xena - wallaby - victoria - ussuri - train - stein - rocky - - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`search` diff --git a/releasenotes/source/rocky.rst b/releasenotes/source/rocky.rst deleted file mode 100644 index 40dd517..0000000 --- a/releasenotes/source/rocky.rst +++ /dev/null @@ -1,6 +0,0 @@ -=================================== - Rocky Series Release Notes -=================================== - -.. release-notes:: - :branch: stable/rocky diff --git a/releasenotes/source/stein.rst b/releasenotes/source/stein.rst deleted file mode 100644 index efaceb6..0000000 --- a/releasenotes/source/stein.rst +++ /dev/null @@ -1,6 +0,0 @@ -=================================== - Stein Series Release Notes -=================================== - -.. release-notes:: - :branch: stable/stein diff --git a/releasenotes/source/train.rst b/releasenotes/source/train.rst deleted file mode 100644 index 5839003..0000000 --- a/releasenotes/source/train.rst +++ /dev/null @@ -1,6 +0,0 @@ -========================== -Train Series Release Notes -========================== - -.. release-notes:: - :branch: stable/train diff --git a/releasenotes/source/unreleased.rst b/releasenotes/source/unreleased.rst deleted file mode 100644 index 2334dd5..0000000 --- a/releasenotes/source/unreleased.rst +++ /dev/null @@ -1,5 +0,0 @@ -============================== - Current Series Release Notes -============================== - - .. release-notes:: diff --git a/releasenotes/source/ussuri.rst b/releasenotes/source/ussuri.rst deleted file mode 100644 index e21e50e..0000000 --- a/releasenotes/source/ussuri.rst +++ /dev/null @@ -1,6 +0,0 @@ -=========================== -Ussuri Series Release Notes -=========================== - -.. release-notes:: - :branch: stable/ussuri diff --git a/releasenotes/source/victoria.rst b/releasenotes/source/victoria.rst deleted file mode 100644 index 4efc7b6..0000000 --- a/releasenotes/source/victoria.rst +++ /dev/null @@ -1,6 +0,0 @@ -============================= -Victoria Series Release Notes -============================= - -.. release-notes:: - :branch: stable/victoria diff --git a/releasenotes/source/wallaby.rst b/releasenotes/source/wallaby.rst deleted file mode 100644 index d77b565..0000000 --- a/releasenotes/source/wallaby.rst +++ /dev/null @@ -1,6 +0,0 @@ -============================ -Wallaby Series Release Notes -============================ - -.. release-notes:: - :branch: stable/wallaby diff --git a/releasenotes/source/xena.rst b/releasenotes/source/xena.rst deleted file mode 100644 index 1be85be..0000000 --- a/releasenotes/source/xena.rst +++ /dev/null @@ -1,6 +0,0 @@ -========================= -Xena Series Release Notes -========================= - -.. release-notes:: - :branch: stable/xena diff --git a/releasenotes/source/yoga.rst b/releasenotes/source/yoga.rst deleted file mode 100644 index 43cafde..0000000 --- a/releasenotes/source/yoga.rst +++ /dev/null @@ -1,6 +0,0 @@ -========================= -Yoga Series Release Notes -========================= - -.. release-notes:: - :branch: unmaintained/yoga diff --git a/releasenotes/source/zed.rst b/releasenotes/source/zed.rst deleted file mode 100644 index 9608c05..0000000 --- a/releasenotes/source/zed.rst +++ /dev/null @@ -1,6 +0,0 @@ -======================== -Zed Series Release Notes -======================== - -.. release-notes:: - :branch: stable/zed diff --git a/spec/acceptance/basic_qdr_spec.rb b/spec/acceptance/basic_qdr_spec.rb deleted file mode 100644 index 2972895..0000000 --- a/spec/acceptance/basic_qdr_spec.rb +++ /dev/null @@ -1,36 +0,0 @@ -require 'spec_helper_acceptance' - -describe 'basic qdr' do - - context 'default parameters' do - - it 'should work with no errors' do - pp= <<-EOS - include openstack_integration - include openstack_integration::repos - - # NOTE(tkajinam): qpid dispatch router is not available for Ubuntu Jammy - if $facts['os']['family'] == 'RedHat' { - class { 'qdr': - listener_addr => $::openstack_integration::config::host, - listener_port => $::openstack_integration::config::messaging_default_port, - listener_sasl_mech => 'PLAIN', - listener_auth_peer => true, - router_worker_threads => 2, - } - - qdr_user { 'testuser': - password => 'secret', - provider => 'sasl', - require => Class['qdr'], - } - } - EOS - - - # Run it twice and test for idempotency - apply_manifest(pp, :catch_failures => true) - apply_manifest(pp, :catch_changes => true) - end - end -end diff --git a/spec/classes/qdr_init_spec.rb b/spec/classes/qdr_init_spec.rb deleted file mode 100644 index 06c17a4..0000000 --- a/spec/classes/qdr_init_spec.rb +++ /dev/null @@ -1,202 +0,0 @@ -require 'spec_helper' - -describe 'qdr' do - - shared_examples 'qdr' do - - it { is_expected.to contain_class('qdr') } - it { is_expected.to contain_class('qdr::params') } - it { is_expected.to contain_class('qdr::install') } - it { is_expected.to contain_class('qdr::config') } - it { is_expected.to contain_class('qdr::service') } - - it 'installs the service package' do - is_expected.to contain_package(platform_params[:qdr_package_name]).with({ :ensure => :installed }) - end - - it 'installs the sasl packages' do - platform_params[:sasl_package_list].each do |p| - is_expected.to contain_package(p).with({ :ensure => :installed }) - end - end - - it 'installs the tools packages' do - platform_params[:tools_package_list].each do |p| - is_expected.to contain_package(p).with({ :ensure => :installed }) - end - end - - context 'with default parameters' do - it do - should contain_file(platform_params[:service_home]).with({ - :ensure => :directory, - :owner => '0', - :group => '0', - :mode => '0755', - }) - end - - it do - should contain_file('/etc/qpid-dispatch').with({ - :ensure => :directory, - :owner => '0', - :group => '0', - :mode => '0644', - }) - end - - it do - should contain_file('/etc/qpid-dispatch/ssl').with({ - :ensure => :directory, - :owner => '0', - :group => '0', - :mode => '0644', - }) - end - - it do - should contain_file('qdrouterd.conf').with({ - :ensure => :file, - :owner => '0', - :group => '0', - :mode => '0644', - }) - end - - it do - should contain_file(platform_params[:router_debug_dump]).with({ - :ensure => :directory, - :owner => '0', - :group => '0', - :mode => '0766', - }) - end - - it do - should contain_service(platform_params[:service_name]).with({ - :ensure => 'running', - :enable => 'true', - }) - end - - it do - should contain_file('qdrouterd.conf').with_content(/mode: standalone/) - should contain_file('qdrouterd.conf').with_content(/workerThreads: 1/) - should contain_file('qdrouterd.conf').with_content(/helloIntervalSeconds: 1/) - should contain_file('qdrouterd.conf').with_content(/helloMaxAgeSeconds: 3/) - should contain_file('qdrouterd.conf').with_content(/raIntervalSeconds: 30/) - should contain_file('qdrouterd.conf').with_content(/raIntervalFluxSeconds: 4/) - should contain_file('qdrouterd.conf').with_content(/remoteLsMaxAgeSeconds: 60/) - should contain_file('qdrouterd.conf').with_content(/host: 127.0.0.1/) - should contain_file('qdrouterd.conf').with_content(/port: 5672/) - should contain_file('qdrouterd.conf').with_content(/authenticatePeer: false/) - should contain_file('qdrouterd.conf').with_content(/idleTimeoutSeconds: 16/) - should contain_file('qdrouterd.conf').with_content(/maxFrameSize: 16384/) - should contain_file('qdrouterd.conf').with_content(/requireEncryption: false/) - should contain_file('qdrouterd.conf').with_content(/saslMechanisms: ANONYMOUS/) - should contain_file('qdrouterd.conf').without_content(/sslProfile {/) - should contain_file('qdrouterd.conf').without_content(/connector {/) - end - - end - - context 'with overridden paramters' do - - let :params do - { - :router_worker_threads => 4, - :router_hello_interval => 2, - :router_hello_max_age => 6, - :router_ra_interval => 60, - :router_ra_interval_flux => 8, - :router_remote_ls_max_age => 120, - :listener_addr => '10.1.1.1', - :listener_port => 5671, - :listener_auth_peer => true, - :listener_idle_timeout => 32, - :listener_max_frame_size => 32768, - :listener_require_encrypt => true, - :listener_sasl_mech => 'ANONYMOUS DIGEST-MD5 EXTERNAL PLAIN', - :connectors => [{'role' => 'inter-router'}], - :extra_listeners => [{'mode' => 'interior'}], - :extra_addresses => [{'prefix' => 'exclusive'}], - } - end - - it do - should contain_file('qdrouterd.conf').with_content(/workerThreads: 4/) - should contain_file('qdrouterd.conf').with_content(/helloIntervalSeconds: 2/) - should contain_file('qdrouterd.conf').with_content(/helloMaxAgeSeconds: 6/) - should contain_file('qdrouterd.conf').with_content(/raIntervalSeconds: 60/) - should contain_file('qdrouterd.conf').with_content(/raIntervalFluxSeconds: 8/) - should contain_file('qdrouterd.conf').with_content(/remoteLsMaxAgeSeconds: 120/) - should contain_file('qdrouterd.conf').with_content(/host: 10.1.1.1/) - should contain_file('qdrouterd.conf').with_content(/port: 5671/) - should contain_file('qdrouterd.conf').with_content(/authenticatePeer: true/) - should contain_file('qdrouterd.conf').with_content(/idleTimeoutSeconds: 32/) - should contain_file('qdrouterd.conf').with_content(/maxFrameSize: 32768/) - should contain_file('qdrouterd.conf').with_content(/requireEncryption: true/) - should contain_file('qdrouterd.conf').with_content(/saslMechanisms: ANONYMOUS DIGEST-MD5 EXTERNAL PLAIN/) - should contain_file('qdrouterd.conf').with_content(/role: inter-router/) - should contain_file('qdrouterd.conf').with_content(/mode: interior/) - should contain_file('qdrouterd.conf').with_content(/prefix: exclusive/) - end - - end - - context 'with qdr ssl enabled' do - - let :params do - { - :listener_require_ssl => true, - :listener_ssl_cert_db => '/etc/ssl/certs/ca-bundle.crt', - :listener_ssl_cert_file => '/etc/pki/ca-trust/source/anchors/puppet_qdr.pem', - :listener_ssl_key_file => '/etc/qpid-dispatch/ssl/puppet_qdr.pem', - } - end - - it do - should contain_file('qdrouterd.conf').with_content(/sslProfile {/) - should contain_file('qdrouterd.conf').with_content(/certDb: \/etc\/ssl\/certs\/ca-bundle.crt/) - should contain_file('qdrouterd.conf').with_content(/certFile: \/etc\/pki\/ca-trust\/source\/anchors\/puppet_qdr.pem/) - should contain_file('qdrouterd.conf').with_content(/keyFile: \/etc\/qpid-dispatch\/ssl\/puppet_qdr.pem/) - end - end - end - - on_supported_os({ - :supported_os => OSDefaults.get_supported_os - }).each do |os,os_facts| - let :facts do - os_facts.merge({'processors' => {'count' => 1}}) - end - - context "on #{os}" do - let (:platform_params) do - case facts[:os]['family'] - when 'Debian' - { - :qdr_package_name => 'qdrouterd', - :service_name => 'qdrouterd', - :sasl_package_list => ['sasl2-bin'], - :tools_package_list => ['qdmanage' , 'qdstat'], - :service_home => '/var/lib/qdrouterd', - :router_debug_dump => '/var/log/qdrouterd' - } - when 'RedHat' - { - :qdr_package_name => 'qpid-dispatch-router', - :service_name => 'qdrouterd', - :sasl_package_list => ['cyrus-sasl-lib','cyrus-sasl-plain'], - :tools_package_list => ['qpid-dispatch-tools'], - :service_home => '/var/lib/qdrouterd', - :router_debug_dump => '/var/log/qdrouterd' - } - end - end - - it_behaves_like 'qdr' - - end - end -end diff --git a/spec/shared_examples.rb b/spec/shared_examples.rb deleted file mode 100644 index fec0eac..0000000 --- a/spec/shared_examples.rb +++ /dev/null @@ -1,5 +0,0 @@ -shared_examples_for "a Puppet::Error" do |description| - it "with message matching #{description.inspect}" do - expect { is_expected.to have_class_count(1) }.to raise_error(Puppet::Error, description) - end -end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb deleted file mode 100644 index b68b8dd..0000000 --- a/spec/spec_helper.rb +++ /dev/null @@ -1,14 +0,0 @@ -require 'puppetlabs_spec_helper/module_spec_helper' -require 'shared_examples' -require 'puppet-openstack_spec_helper/facts' - -fixture_path = File.expand_path(File.join(File.dirname(__FILE__), 'fixtures')) - -RSpec.configure do |c| - c.alias_it_should_behave_like_to :it_configures, 'configures' - c.alias_it_should_behave_like_to :it_raises, 'raises' - - c.module_path = File.join(fixture_path, 'modules') -end - -at_exit { RSpec::Puppet::Coverage.report! } diff --git a/spec/spec_helper_acceptance.rb b/spec/spec_helper_acceptance.rb deleted file mode 100644 index d51dfdb..0000000 --- a/spec/spec_helper_acceptance.rb +++ /dev/null @@ -1 +0,0 @@ -require 'puppet-openstack_spec_helper/litmus_spec_helper' diff --git a/spec/unit/type/qdr_address_spec.rb b/spec/unit/type/qdr_address_spec.rb deleted file mode 100644 index 6e73ead..0000000 --- a/spec/unit/type/qdr_address_spec.rb +++ /dev/null @@ -1,14 +0,0 @@ -require 'puppet' -require 'puppet/type/qdr_address' -describe 'Puppet::Type.type(:qdr_address)' do - before :each do - @qdr_address = Puppet::Type.type(:qdr_address).new(:name => 'test', :prefix => 'unicast', :distribution => 'closest' ) - end - - it 'should not expect a prefix with a whitespace' do - expect { - Puppet::Type.type(:qdr_address).new(:name => 'test', :prefix => 'multi cast') - }.to raise_error(Puppet::Error, /Parameter prefix failed/) - end - -end diff --git a/spec/unit/type/qdr_connector_spec.rb b/spec/unit/type/qdr_connector_spec.rb deleted file mode 100644 index 3625155..0000000 --- a/spec/unit/type/qdr_connector_spec.rb +++ /dev/null @@ -1,20 +0,0 @@ -require 'puppet' -require 'puppet/type/qdr_connector' -describe 'Puppet::Type.type(:qdr_connector)' do - before :each do - @qdr_connector = Puppet::Type.type(:qdr_connector).new(:name => 'Conn1', :addr => '127.0.0.1', :port => '5273', :role => 'normal' ) - end - - it 'should require a name' do - expect { - Puppet::Type.type(:qdr_connector).new({}) - }.to raise_error(Puppet::Error, 'Title or name must be provided') - end - - it 'should not expect a name with a whitespace' do - expect { - Puppet::Type.type(:qdr_connector).new(:name => 'C onn2') - }.to raise_error(Puppet::Error, /Parameter name failed/) - end - -end diff --git a/spec/unit/type/qdr_listener_spec.rb b/spec/unit/type/qdr_listener_spec.rb deleted file mode 100644 index cf9269d..0000000 --- a/spec/unit/type/qdr_listener_spec.rb +++ /dev/null @@ -1,20 +0,0 @@ -require 'puppet' -require 'puppet/type/qdr_listener' -describe 'Puppet::Type.type(:qdr_listener)' do - before :each do - @qdr_listener = Puppet::Type.type(:qdr_listener).new(:name => 'Listener1', :addr => '127.0.0.1', :port => '5273', :role => 'normal' ) - end - - it 'should require a name' do - expect { - Puppet::Type.type(:qdr_listener).new({}) - }.to raise_error(Puppet::Error, 'Title or name must be provided') - end - - it 'should not expect a name with a whitespace' do - expect { - Puppet::Type.type(:qdr_listener).new(:name => 'L istener2') - }.to raise_error(Puppet::Error, /Parameter name failed/) - end - -end diff --git a/spec/unit/type/qdr_user_spec.rb b/spec/unit/type/qdr_user_spec.rb deleted file mode 100644 index c07e465..0000000 --- a/spec/unit/type/qdr_user_spec.rb +++ /dev/null @@ -1,23 +0,0 @@ -require 'puppet' -require 'puppet/type/qdr_user' -describe 'Puppet::Type.type(:qdr_user)' do - before :each do - @qdr_user = Puppet::Type.type(:qdr_user).new(:name => 'guest', :password => 'guestpw') - end - - it 'should accept a user name' do - @qdr_user[:name] = 'bob' - expect(@qdr_user[:name]).to eq('bob') - end - - it 'should accept a password' do - @qdr_user[:password] = 'pw' - expect(@qdr_user[:password]).to eq('pw') - end - - it 'should require a name' do - expect { - Puppet::Type.type(:qdr_user).new({}) - }.to raise_error(Puppet::Error, 'Title or name must be provided') - end -end diff --git a/templates/qdrouterd.conf.erb b/templates/qdrouterd.conf.erb deleted file mode 100644 index d406722..0000000 --- a/templates/qdrouterd.conf.erb +++ /dev/null @@ -1,130 +0,0 @@ -## -## Licensed to the Apache Software Foundation (ASF) under one -## or more contributor license agreements. See the NOTICE file -## distributed with this work for additional information -## regarding copyright ownership. The ASF licenses this file -## to you 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 -## - -# See the qdrouterd.conf (5) manual page for information about this -# file's format and options. - -router { - mode: <%= @router_mode %> - id: <%= @router_id %> - workerThreads: <%= @router_worker_threads %> - debugDump: <%= @router_debug_dump %> - saslConfigPath: <%= @router_sasl_path %> - saslConfigName: <%= @router_sasl_name %> - helloIntervalSeconds: <%= @router_hello_interval %> - helloMaxAgeSeconds: <%= @router_hello_max_age %> - raIntervalSeconds: <%= @router_ra_interval %> - raIntervalFluxSeconds: <%= @router_ra_interval_flux %> - remoteLsMaxAgeSeconds: <%= @router_remote_ls_max_age %> -} - -<%- if @listener_require_ssl -%> -sslProfile { - name: <%= @router_id %> - certDb: <%= @listener_ssl_cert_db %> - certFile: <%= @listener_ssl_cert_file %> - keyFile: <%= @listener_ssl_key_file %> -<%- if @listener_ssl_pw_file -%> - passwordFile: <%= @listener_ssl_pw_file %> -<%- end -%> -<%- if @listener_ssl_password -%> - password: <%= @listener_ssl_password %> -<%- end -%> -} -<%- end -%> - -<%- @ssl_profiles.each do |profile| -%> -sslProfile { -<%- profile.each do |k,v| -%> - <%= k %>: <%= v %> -<%- end -%> -} - -<%- end -%> - -listener { - host: <%= @listener_addr %> - port: <%= @listener_port %> - idleTimeoutSeconds: <%= @listener_idle_timeout %> - maxFrameSize: <%= @listener_max_frame_size %> - requireEncryption: <%= @listener_require_encrypt %> -<%- if @listener_require_ssl -%> - sslProfile: <%= @router_id %> -<%- end -%> - authenticatePeer: <%= @listener_auth_peer %> - saslMechanisms: <%= @listener_sasl_mech %> -} - -<%- @extra_listeners.each do |listener| -%> -listener { -<%- listener.each do |k,v| -%> - <%= k %>: <%= v %> -<%- end -%> -} - -<%- end -%> - -<%- @connectors.each do |connector| -%> -connector { -<%- connector.each do |k,v| -%> - <%= k %>: <%= v %> -<%- end -%> -} - -<%- end -%> - -address { - prefix: unicast - distribution: closest -} - -address { - prefix: exclusive - distribution: closest -} - -address { - prefix: broadcast - distribution: multicast -} - -<%- @extra_addresses.each do |address| -%> -address { -<%- address.each do |k,v| -%> - <%= k %>: <%= v %> -<%- end -%> -} - -<%- end -%> - -<%- @autolink_addresses.each do |autoLink| -%> -autoLink { -<%- autoLink.each do |k,v| -%> - <%=k %>: <%= v %> -<%- end -%> -} - -<%- end -%> - -log { - module: <%= @log_module %> - enable: <%= @log_enable %> - timestamp: true - output: <%= @log_output %> -} diff --git a/tox.ini b/tox.ini deleted file mode 100644 index 90eea2e..0000000 --- a/tox.ini +++ /dev/null @@ -1,13 +0,0 @@ -[tox] -minversion = 3.1 -skipsdist = True -envlist = releasenotes -ignore_basepython_conflict = True - -[testenv] -basepython = python3 -install_command = pip install -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master} {opts} {packages} - -[testenv:releasenotes] -deps = -r{toxinidir}/doc/requirements.txt -commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html