Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
systemsmanagement:Ardana:8
ardana-swift
ardana-swift-8.0+git.1551502730.f4d219d.obscpio
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File ardana-swift-8.0+git.1551502730.f4d219d.obscpio of Package ardana-swift
07070100000000000081A40000000000000000000000015C7A0D8A00000023000000000000000000000000000000000000003900000000ardana-swift-8.0+git.1551502730.f4d219d/.copyrightignoreroles/_SWF-RSY/files/rsync.service 07070100000001000081A40000000000000000000000015C7A0D8A00000081000000000000000000000000000000000000003300000000ardana-swift-8.0+git.1551502730.f4d219d/.gitreview[gerrit] host=gerrit.suse.provo.cloud port=29418 project=ardana/swift-ansible.git defaultremote=ardana defaultbranch=stable/pike 07070100000002000081A40000000000000000000000015C7A0D8A0000000C000000000000000000000000000000000000003600000000ardana-swift-8.0+git.1551502730.f4d219d/.rsync-filter- ardana-ci 07070100000003000081A40000000000000000000000015C7A0D8A0000279F000000000000000000000000000000000000003000000000ardana-swift-8.0+git.1551502730.f4d219d/LICENSE 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. 07070100000004000081A40000000000000000000000015C7A0D8A0000124C000000000000000000000000000000000000003200000000ardana-swift-8.0+git.1551502730.f4d219d/README.md (c) Copyright 2015 Hewlett Packard Enterprise Development LP (c) Copyright 2017 SUSE LLC 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. README ====== The swift repo will have the following roles: - SWF-PRX - SWF-CMN - SWF-ACC - SWF-CON - SWF-OBJ In time the role names, specified in the configuration processor will change to: swift-proxy, swift-common, swift-account, swift-container and swift-object. The service verbs are: - install - configure - start - stop An example of the swift-ansible structure: ``` └── swift-ansible ├── filter_plugins ├── library ├── README.md └── roles ├── swift │ ├── defaults │ ├── files │ ├── handlers │ ├── meta │ ├── tasks │ │ └── swift-deploy.yml │ ├── templates │ └── vars ├── swift-account │ ├── defaults │ ├── files │ ├── handlers │ ├── meta │ ├── tasks │ │ ├── configure.yml │ │ ├── install.yml │ │ └── start.yml │ ├── templates │ └── vars ├── swift-common │ ├── defaults │ ├── files │ ├── handlers │ ├── meta │ ├── tasks │ │ ├── configure.yml │ │ └── install.yml │ ├── templates │ └── vars ├── swift-container │ ├── defaults │ ├── files │ ├── handlers │ ├── meta │ ├── tasks │ │ ├── configure.yml │ │ ├── install.yml │ │ └── start.yml │ ├── templates │ └── vars ├── swift-object │ ├── defaults │ ├── files │ ├── handlers │ ├── meta │ ├── tasks │ │ ├── configure.yml │ │ ├── install.yml │ │ └── start.yml │ ├── templates │ └── vars └── swift-proxy ├── defaults ├── files ├── handlers ├── meta ├── tasks │ ├── configure.yml │ ├── install.yml │ └── start.yml ├── templates └── vars ``` Note that the "swift-common" role does not have a "start" verb, since that role only installs and populates configuration files that are common to the other Swift roles. install_package results ----------------------- The install_package module, used to install the swift and swiftlm venvs and also create the various swift services, like swift-proxy-server, produces a rather large result structure that is stored in variables like swift_proxy_install_result. This result is used to determine if the package changed, what version is installed. When called in a loop the result structure also includes the part of the dictionary used when calling install_package. Here is an example of the install_package result structure returned for the swift_proxy_server: { "item": { "cache": null, "changed": false, "clean": false, "extra_mode_bits": 0, "group": "root", "invocation": { "module_args": "", "module_name": "install_package" }, "item": { "key": "swift-proxy-server", "value": { "cmd": "swift-proxy-server", "main": true }, "name": "swift", "service": "swift-proxy-server", "state": "present", "version": "20150824T073404Z" }, } } 07070100000005000081A40000000000000000000000015C7A0D8A00000804000000000000000000000000000000000000003D00000000ardana-swift-8.0+git.1551502730.f4d219d/_swift-configure.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - hosts: - SWF-ACC - SWF-CON - SWF-OBJ - SWF-PRX roles: - _SWF-CMN tasks: - include: roles/_SWF-CMN/tasks/get_storage_policies_fact.yml - hosts: SWF-RSY roles: - _SWF-RSY tasks: - include: roles/_SWF-RSY/tasks/configure.yml become: yes - hosts: SWF-PRX roles: - SWF-PRX - access-tailer tasks: - include: roles/SWF-PRX/tasks/configure.yml become: yes - include: roles/access-tailer/tasks/configure.yml become: yes - hosts: SWF-ACC roles: - SWF-ACC tasks: - include: roles/SWF-ACC/tasks/configure.yml become: yes - hosts: SWF-CON roles: - SWF-CON tasks: - include: roles/SWF-CON/tasks/configure.yml become: yes - hosts: SWF-OBJ roles: - SWF-OBJ tasks: - include: roles/SWF-OBJ/tasks/configure.yml become: yes - hosts: - SWF-ACC - SWF-CON - SWF-OBJ - SWF-PRX roles: - swiftlm-ring-supervisor tasks: - include: roles/swiftlm-ring-supervisor/tasks/configure.yml become: yes - include: roles/swiftlm-ring-supervisor/tasks/deploy-rings.yml become: yes # Play using internal role SWF-EXP applied to the first object server - hosts: SWF-OBJ--first-member roles: - SWF-EXP tasks: - include: roles/SWF-EXP/tasks/configure.yml become: yes - hosts: SWF-PRX--first-member roles: - swift-dispersion tasks: - include: roles/swift-dispersion/tasks/configure.yml become: yes 07070100000006000081A40000000000000000000000015C7A0D8A000003D5000000000000000000000000000000000000004900000000ardana-swift-8.0+git.1551502730.f4d219d/_swift-functional-test-setup.yml# # (c) Copyright 2015,2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - hosts: SWF-PRX roles: - swift-functional tasks: - include: roles/swift-functional/tasks/make-testers.yml ansible_python_interpreter: "{{ KEY_CLI.vars.keystone_client_python_interpreter }}" become: yes - hosts: SWF-PRX roles: - swift-functional tasks: - include: roles/swift-functional/tasks/configure.yml 07070100000007000081A40000000000000000000000015C7A0D8A00000556000000000000000000000000000000000000003B00000000ardana-swift-8.0+git.1551502730.f4d219d/_swift-install.yml# # (c) Copyright 2015,2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - hosts: SWF-PRX roles: - SWF-PRX - access-tailer tasks: - include: roles/SWF-PRX/tasks/install.yml become: yes - include: roles/access-tailer/tasks/install.yml become: yes - hosts: SWF-ACC roles: - SWF-ACC tasks: - include: roles/SWF-ACC/tasks/install.yml become: yes - hosts: SWF-CON roles: - SWF-CON tasks: - include: roles/SWF-CON/tasks/install.yml become: yes - hosts: SWF-OBJ roles: - SWF-OBJ tasks: - include: roles/SWF-OBJ/tasks/install.yml become: yes # Play using internal role SWF-EXP applied to the first object server - hosts: SWF-OBJ--first-member roles: - SWF-EXP tasks: - include: roles/SWF-EXP/tasks/install.yml become: yes 07070100000008000081A40000000000000000000000015C7A0D8A000004F5000000000000000000000000000000000000004200000000ardana-swift-8.0+git.1551502730.f4d219d/_swift-post-configure.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - hosts: SWF-PRX roles: - swift-post-configure # This task should be set to run-once tasks: - include: roles/swift-post-configure/tasks/keystone_conf.yml ansible_python_interpreter: "{{ KEY_CLI.vars.keystone_client_python_interpreter }}" - hosts: SWF-ACC:SWF-CON:SWF-OBJ:SWF-PRX roles: - swift-post-configure tasks: - include: roles/swift-post-configure/tasks/swiftlm.yml become: yes - include: swiftlm-uptime-monitor.yml - include: swift-start.yml # Configure swiftlm-aggregator after swift is up and running - include: _swiftlm-aggregate.yml - include: swift-configure-monasca.yml 07070100000009000081A40000000000000000000000015C7A0D8A000002E0000000000000000000000000000000000000004400000000ardana-swift-8.0+git.1551502730.f4d219d/_swift-schedule-restart.yml# # (c) Copyright 2018 SUSE LLC # # 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. # --- # Schedule a restart of all swift services using ardana_notify_... variables - hosts: all tasks: - include: roles/_SWF-CMN/tasks/_schedule_restart.yml0707010000000A000081A40000000000000000000000015C7A0D8A00000313000000000000000000000000000000000000003F00000000ardana-swift-8.0+git.1551502730.f4d219d/_swiftlm-aggregate.yml# # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - hosts: SWF-PRX--first-member roles: - swiftlm-aggregate tasks: - include: roles/swiftlm-aggregate/tasks/configure.yml become: yes 0707010000000B000081A40000000000000000000000015C7A0D8A00000327000000000000000000000000000000000000003F00000000ardana-swift-8.0+git.1551502730.f4d219d/_swiftlm-provision.yml# # (c) Copyright 2015,2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - hosts: SWF-ACC:SWF-CON:SWF-OBJ:SWF-PRX roles: - swiftlm-provision tasks: - include: roles/swiftlm-provision/tasks/install.yml become: yes 0707010000000C000041ED0000000000000000000000085C7A0D8A00000000000000000000000000000000000000000000003200000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci0707010000000D000081A40000000000000000000000015C7A0D8A00000612000000000000000000000000000000000000003C00000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/README.md# swift-ansible Ardana CI environment The project environment is run automatically as a ci job when submitting a swift-ansible patch. See the zuul job ardana-project-stack-test. There are a number of other environments defined. These are used solely by the developer i.e. they are not used by any CI job. The environment names describe the general configuration. For example: * cp1-keystone-swift * cp1-keystone-swift-cp2-glance * cp1-keystone-cp2-swift-cp3-glance * cp1-keystone-cp2-swift-cp3-swift-cp4-glance Use astack to build and deploy these environments. For example: cp ardana-dev-tools # Always good practice to cleanup your vagrant environment bin/cleanup-slave # To build and deploy cp1-keystone-swift-cp2-glance: bin/astack.sh --project-stack ardana/swift-ansible cp1-keystone-swift-cp2-glance # If you don't need to re-build the venvs: bin/astack.sh --no-setup --no-build --project-stack ardana/swift-ansible cp1-keystone-swift-cp2-glance Here are some useful astack command line options: --no-setup Don't run dev-env-install.yml --no-build Don't build venv, reuse existing packages --no-config Do not execute the config-processor --no-site Do not execute the site.yml playbook during To run the test plan: cd ardana-dev-tools/ardana-vagrant-models/project-vagrant ../../bin/test-project-stack.sh ardana/swift-ansible cp1-keystone-swift-cp2-glance Note, the test plan is can be run against any environment, but it is designed for running against the project environment. 0707010000000E000041ED0000000000000000000000035C7A0D8A00000000000000000000000000000000000000000000005400000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/cp1-keystone-cp2-swift-cp3-glance0707010000000F000041ED0000000000000000000000035C7A0D8A00000000000000000000000000000000000000000000006000000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/cp1-keystone-cp2-swift-cp3-glance/input-model07070100000010000041ED0000000000000000000000035C7A0D8A00000000000000000000000000000000000000000000006500000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/cp1-keystone-cp2-swift-cp3-glance/input-model/data07070100000011000081A40000000000000000000000015C7A0D8A000010E3000000000000000000000000000000000000007700000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/cp1-keystone-cp2-swift-cp3-glance/input-model/data/control_plane.yml# # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- product: version: 2 control-planes: - name: cp1 control-plane-prefix: cp1 uses: - from: cp2 service-components: - swift-proxy failure-zones: - AZ1 - AZ2 - AZ3 # configuration-data: # - SWIFT-CONFIG-CP1 common-service-components: - lifecycle-manager-target load-balancers: - name: lb provider: ip-cluster tls-components: - default components: - rabbitmq - mysql roles: - internal - admin - name: extlb provider: ip-cluster external-name: myardana-cp1.test cert-file: my-public-cp1-cert tls-components: - default roles: - public clusters: - name: cluster1 cluster-prefix: c1 server-role: - SERVER1-ROLE member-count: 1 allocation-policy: strict service-components: - lifecycle-manager - lifecycle-manager-target - ntp-server - mysql - ip-cluster - keystone-api - rabbitmq - memcached - tempest - name: cp2 control-plane-prefix: cp2 uses: - from: cp1 service-components: - all failure-zones: - AZ1 - AZ2 - AZ3 configuration-data: - SWIFT-CONFIG-CP2 common-service-components: - lifecycle-manager-target - ntp-client load-balancers: - name: lb provider: ip-cluster tls-components: - default #components: roles: - internal - admin - name: extlb provider: ip-cluster external-name: myardana-cp2.test cert-file: my-public-cp2-cert tls-components: - default roles: - public clusters: - name: cluster1 cluster-prefix: c1 server-role: - SERVER2-ROLE member-count: 1 allocation-policy: strict service-components: - ip-cluster - swift-ring-builder - swift-proxy - swift-account - swift-container - swift-object - name: cp3 control-plane-prefix: cp3 uses: - from: cp1 service-components: - all - from: cp2 service-components: - swift-proxy failure-zones: - AZ1 - AZ2 - AZ3 # configuration-data: # - OCTAVIA-CONFIG-CP2 # - NEUTRON-CONFIG-CP2 common-service-components: - lifecycle-manager-target - ntp-client load-balancers: - name: lb provider: ip-cluster tls-components: - default components: - rabbitmq - mysql roles: - internal - admin - name: extlb provider: ip-cluster external-name: myardana-cp4.test cert-file: my-public-cp4-cert tls-components: - default roles: - public clusters: - name: cluster1 cluster-prefix: c1 server-role: - SERVER3-ROLE member-count: 1 allocation-policy: strict service-components: - mysql - ip-cluster - rabbitmq - glance-api - glance-registry 07070100000012000081A40000000000000000000000015C7A0D8A00000ACA000000000000000000000000000000000000006F00000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/cp1-keystone-cp2-swift-cp3-glance/input-model/data/disks.yml# # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- product: version: 2 disk-models: - name: DISKS volume-groups: # The policy is not to consume 100% of the space of each volume group. # 5% should be left free for snapshots and to allow for some flexibility. # sda_root is a templated value to align with whatever partition is really used # This value is checked in os config and replaced by the partition actually used # on sda e.g. sda1 or sda5 - name: ardana-vg physical-volumes: - /dev/sda_root logical-volumes: - name: root size: 75% fstype: ext4 mount: / - name: log size: 15% mount: /var/log fstype: ext4 mkfs-opts: -O large_file - name: crash size: 2% mount: /var/crash fstype: ext4 mkfs-opts: -O large_file - name: SWIFT-DISKS volume-groups: # The policy is not to consume 100% of the space of each volume group. # 5% should be left free for snapshots and to allow for some flexibility. # sda_root is a templated value to align with whatever partition is really used # This value is checked in os config and replaced by the partition actually used # on sda e.g. sda1 or sda5 - name: ardana-vg physical-volumes: - /dev/sda_root logical-volumes: - name: root size: 75% fstype: ext4 mount: / - name: log size: 15% mount: /var/log fstype: ext4 mkfs-opts: -O large_file - name: crash size: 2% mount: /var/crash fstype: ext4 mkfs-opts: -O large_file device-groups: - name: swiftobj devices: - name: /dev/sdb - name: /dev/sdc - name: /dev/sdd - name: /dev/sde - name: /dev/sdf consumer: name: swift attrs: rings: - account - container - object-0 07070100000013000081A40000000000000000000000015C7A0D8A0000051E000000000000000000000000000000000000007800000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/cp1-keystone-cp2-swift-cp3-glance/input-model/data/network_groups.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- product: version: 2 network-groups: - name: ARDANA hostname-suffix: ardana component-endpoints: - lifecycle-manager - lifecycle-manager-target - name: MANAGEMENT hostname-suffix: mgmt hostname: true tags: - neutron.networks.vxlan - neutron.networks.vlan: provider-physical-network: physnet1 # tls-component-endpoints: # - barbican-api component-endpoints: - default # routes: # - default load-balancers: - extlb - lb - name: EXTERNAL-VM tags: - neutron.l3_agent.external_network_bridge 07070100000014000081A40000000000000000000000015C7A0D8A0000044A000000000000000000000000000000000000007100000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/cp1-keystone-cp2-swift-cp3-glance/input-model/data/regions.yml# # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- product: version: 2 regions: - name: region1 includes: - control-plane: cp1 services: - all - control-plane: cp2 services: - all - control-plane: cp3 services: - all # - name: region2 # includes: # - control-plane: cp1 # services: # - all # - control-plane: cp3 # services: # - all 07070100000015000081A40000000000000000000000015C7A0D8A000003BC000000000000000000000000000000000000007600000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/cp1-keystone-cp2-swift-cp3-glance/input-model/data/server_roles.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- product: version: 2 server-roles: - name: SERVER1-ROLE interface-model: NET-INTERFACES disk-model: DISKS - name: SERVER2-ROLE interface-model: NET-INTERFACES disk-model: SWIFT-DISKS - name: SERVER3-ROLE interface-model: NET-INTERFACES disk-model: DISKS 07070100000016000081A40000000000000000000000015C7A0D8A000005D5000000000000000000000000000000000000007100000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/cp1-keystone-cp2-swift-cp3-glance/input-model/data/servers.yml# # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- product: version: 2 baremetal: netmask: 255.255.255.0 subnet: 192.168.110.0 server-interface: eth2 servers: - id: server1 ip-addr: 192.168.110.3 role: SERVER1-ROLE server-group: RACK1 mac-addr: a4:93:0c:4f:7c:73 nic-mapping: VAGRANT ilo-ip: 192.168.109.3 ilo-password: password ilo-user: admin - id: server2 ip-addr: 192.168.110.4 role: SERVER2-ROLE server-group: RACK2 mac-addr: b2:72:8d:ac:7c:6f nic-mapping: VAGRANT ilo-ip: 192.168.109.4 ilo-password: password ilo-user: admin - id: server3 ip-addr: 192.168.110.5 role: SERVER3-ROLE server-group: RACK3 mac-addr: 8a:8e:64:55:43:76 nic-mapping: VAGRANT ilo-ip: 192.168.109.5 ilo-password: password ilo-user: admin 07070100000017000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000006B00000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/cp1-keystone-cp2-swift-cp3-glance/input-model/data/swift07070100000018000081A40000000000000000000000015C7A0D8A0000060A000000000000000000000000000000000000007C00000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/cp1-keystone-cp2-swift-cp3-glance/input-model/data/swift/swift_config.yml# # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- product: version: 2 configuration-data: - name: SWIFT-CONFIG-CP2 services: - swift data: control_plane_rings: swift-zones: - id: 1 server-groups: - CLOUD rings: - name: account display-name: Account Ring min-part-hours: 16 partition-power: 12 replication-policy: replica-count: 3 - name: container display-name: Container Ring min-part-hours: 16 partition-power: 12 replication-policy: replica-count: 3 - name: object-0 display-name: General default: yes min-part-hours: 16 partition-power: 12 replication-policy: replica-count: 3 07070100000019000041ED0000000000000000000000035C7A0D8A00000000000000000000000000000000000000000000005E00000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/cp1-keystone-cp2-swift-cp3-swift-cp4-glance0707010000001A000041ED0000000000000000000000035C7A0D8A00000000000000000000000000000000000000000000006A00000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/cp1-keystone-cp2-swift-cp3-swift-cp4-glance/input-model0707010000001B000041ED0000000000000000000000035C7A0D8A00000000000000000000000000000000000000000000006F00000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/cp1-keystone-cp2-swift-cp3-swift-cp4-glance/input-model/data0707010000001C000081A40000000000000000000000015C7A0D8A00001474000000000000000000000000000000000000008100000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/cp1-keystone-cp2-swift-cp3-swift-cp4-glance/input-model/data/control_plane.yml# # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- product: version: 2 control-planes: - name: cp1 control-plane-prefix: cp1 failure-zones: - AZ1 - AZ2 - AZ3 common-service-components: - lifecycle-manager-target load-balancers: - name: lb provider: ip-cluster tls-components: - default components: - rabbitmq - mysql roles: - internal - admin - name: extlb provider: ip-cluster external-name: myardana-cp1.test cert-file: my-public-cp1-cert tls-components: - default roles: - public clusters: - name: cluster1 cluster-prefix: c1 server-role: - SERVER1-ROLE member-count: 1 allocation-policy: strict service-components: - lifecycle-manager - lifecycle-manager-target - ntp-server - mysql - ip-cluster - keystone-api - rabbitmq - memcached - tempest - name: cp2 control-plane-prefix: cp2 uses: - from: cp1 service-components: - all failure-zones: - AZ1 - AZ2 - AZ3 configuration-data: - SWIFT-CONFIG-CP2 common-service-components: - lifecycle-manager-target - ntp-client load-balancers: - name: lb provider: ip-cluster tls-components: - default #components: roles: - internal - admin - name: extlb provider: ip-cluster external-name: myardana-cp2.test cert-file: my-public-cp2-cert tls-components: - default roles: - public clusters: - name: cluster1 cluster-prefix: c1 server-role: - SERVER2-ROLE member-count: 1 allocation-policy: strict service-components: - ip-cluster - swift-ring-builder - swift-proxy - swift-account - swift-container - swift-object - name: cp3 control-plane-prefix: cp3 uses: - from: cp1 service-components: - all failure-zones: - AZ1 - AZ2 - AZ3 configuration-data: - SWIFT-CONFIG-CP3 common-service-components: - lifecycle-manager-target - ntp-client load-balancers: - name: lb provider: ip-cluster tls-components: - default #components: roles: - internal - admin - name: extlb provider: ip-cluster external-name: myardana-cp3.test cert-file: my-public-cp3-cert tls-components: - default roles: - public clusters: - name: cluster1 cluster-prefix: c1 server-role: - SERVER3-ROLE member-count: 1 allocation-policy: strict service-components: - ip-cluster - swift-ring-builder - swift-proxy - swift-account - swift-container - swift-object - name: cp4 control-plane-prefix: cp4 uses: - from: cp1 service-components: - all - from: cp2 service-components: - swift-proxy failure-zones: - AZ1 - AZ2 - AZ3 common-service-components: - lifecycle-manager-target - ntp-client load-balancers: - name: lb provider: ip-cluster tls-components: - default components: - rabbitmq - mysql roles: - internal - admin - name: extlb provider: ip-cluster external-name: myardana-cp4.test cert-file: my-public-cp4-cert tls-components: - default roles: - public clusters: - name: cluster1 cluster-prefix: c1 server-role: - SERVER4-ROLE member-count: 1 allocation-policy: strict service-components: - mysql - ip-cluster - rabbitmq - glance-api - glance-registry 0707010000001D000081A40000000000000000000000015C7A0D8A00000ACA000000000000000000000000000000000000007900000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/cp1-keystone-cp2-swift-cp3-swift-cp4-glance/input-model/data/disks.yml# # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- product: version: 2 disk-models: - name: DISKS volume-groups: # The policy is not to consume 100% of the space of each volume group. # 5% should be left free for snapshots and to allow for some flexibility. # sda_root is a templated value to align with whatever partition is really used # This value is checked in os config and replaced by the partition actually used # on sda e.g. sda1 or sda5 - name: ardana-vg physical-volumes: - /dev/sda_root logical-volumes: - name: root size: 75% fstype: ext4 mount: / - name: log size: 15% mount: /var/log fstype: ext4 mkfs-opts: -O large_file - name: crash size: 2% mount: /var/crash fstype: ext4 mkfs-opts: -O large_file - name: SWIFT-DISKS volume-groups: # The policy is not to consume 100% of the space of each volume group. # 5% should be left free for snapshots and to allow for some flexibility. # sda_root is a templated value to align with whatever partition is really used # This value is checked in os config and replaced by the partition actually used # on sda e.g. sda1 or sda5 - name: ardana-vg physical-volumes: - /dev/sda_root logical-volumes: - name: root size: 75% fstype: ext4 mount: / - name: log size: 15% mount: /var/log fstype: ext4 mkfs-opts: -O large_file - name: crash size: 2% mount: /var/crash fstype: ext4 mkfs-opts: -O large_file device-groups: - name: swiftobj devices: - name: /dev/sdb - name: /dev/sdc - name: /dev/sdd - name: /dev/sde - name: /dev/sdf consumer: name: swift attrs: rings: - account - container - object-0 0707010000001E000081A40000000000000000000000015C7A0D8A0000051E000000000000000000000000000000000000008200000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/cp1-keystone-cp2-swift-cp3-swift-cp4-glance/input-model/data/network_groups.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- product: version: 2 network-groups: - name: ARDANA hostname-suffix: ardana component-endpoints: - lifecycle-manager - lifecycle-manager-target - name: MANAGEMENT hostname-suffix: mgmt hostname: true tags: - neutron.networks.vxlan - neutron.networks.vlan: provider-physical-network: physnet1 # tls-component-endpoints: # - barbican-api component-endpoints: - default # routes: # - default load-balancers: - extlb - lb - name: EXTERNAL-VM tags: - neutron.l3_agent.external_network_bridge 0707010000001F000081A40000000000000000000000015C7A0D8A00000442000000000000000000000000000000000000007B00000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/cp1-keystone-cp2-swift-cp3-swift-cp4-glance/input-model/data/regions.yml# # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- product: version: 2 regions: - name: region1 includes: - control-plane: cp1 services: - all - control-plane: cp2 services: - all - control-plane: cp4 services: - all - name: region2 includes: - control-plane: cp1 services: - all - control-plane: cp3 services: - all 07070100000020000081A40000000000000000000000015C7A0D8A0000041A000000000000000000000000000000000000008000000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/cp1-keystone-cp2-swift-cp3-swift-cp4-glance/input-model/data/server_roles.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- product: version: 2 server-roles: - name: SERVER1-ROLE interface-model: NET-INTERFACES disk-model: DISKS - name: SERVER2-ROLE interface-model: NET-INTERFACES disk-model: SWIFT-DISKS - name: SERVER3-ROLE interface-model: NET-INTERFACES disk-model: SWIFT-DISKS - name: SERVER4-ROLE interface-model: NET-INTERFACES disk-model: DISKS 07070100000021000081A40000000000000000000000015C7A0D8A000006C4000000000000000000000000000000000000007B00000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/cp1-keystone-cp2-swift-cp3-swift-cp4-glance/input-model/data/servers.yml# # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- product: version: 2 baremetal: netmask: 255.255.255.0 subnet: 192.168.110.0 server-interface: eth2 servers: - id: server1 ip-addr: 192.168.110.3 role: SERVER1-ROLE server-group: RACK1 mac-addr: a4:93:0c:4f:7c:73 nic-mapping: VAGRANT ilo-ip: 192.168.109.3 ilo-password: password ilo-user: admin - id: server2 ip-addr: 192.168.110.4 role: SERVER2-ROLE server-group: RACK2 mac-addr: b2:72:8d:ac:7c:6f nic-mapping: VAGRANT ilo-ip: 192.168.109.4 ilo-password: password ilo-user: admin - id: server3 ip-addr: 192.168.110.5 role: SERVER3-ROLE server-group: RACK3 mac-addr: 8a:8e:64:55:43:76 nic-mapping: VAGRANT ilo-ip: 192.168.109.5 ilo-password: password ilo-user: admin - id: server4 ip-addr: 192.168.110.6 role: SERVER4-ROLE server-group: RACK3 mac-addr: 26:67:3e:49:5a:a7 nic-mapping: VAGRANT ilo-ip: 192.168.109.6 ilo-password: password ilo-user: admin 07070100000022000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000007500000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/cp1-keystone-cp2-swift-cp3-swift-cp4-glance/input-model/data/swift07070100000023000081A40000000000000000000000015C7A0D8A00000960000000000000000000000000000000000000008600000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/cp1-keystone-cp2-swift-cp3-swift-cp4-glance/input-model/data/swift/swift_config.yml# # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- product: version: 2 configuration-data: - name: SWIFT-CONFIG-CP2 services: - swift data: control_plane_rings: swift-zones: - id: 1 server-groups: - CLOUD rings: - name: account display-name: Account Ring min-part-hours: 16 partition-power: 12 replication-policy: replica-count: 3 - name: container display-name: Container Ring min-part-hours: 16 partition-power: 12 replication-policy: replica-count: 3 - name: object-0 display-name: General default: yes min-part-hours: 16 partition-power: 12 replication-policy: replica-count: 3 - name: SWIFT-CONFIG-CP3 services: - swift data: control_plane_rings: swift-zones: - id: 1 server-groups: - CLOUD rings: - name: account display-name: Account Ring min-part-hours: 16 partition-power: 13 replication-policy: replica-count: 3 - name: container display-name: Container Ring min-part-hours: 16 partition-power: 13 replication-policy: replica-count: 3 - name: object-0 display-name: General default: yes min-part-hours: 16 partition-power: 13 replication-policy: replica-count: 3 07070100000024000041ED0000000000000000000000035C7A0D8A00000000000000000000000000000000000000000000004500000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/cp1-keystone-swift07070100000025000041ED0000000000000000000000035C7A0D8A00000000000000000000000000000000000000000000005000000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/cp1-keystone-swift-cp2-glance07070100000026000041ED0000000000000000000000035C7A0D8A00000000000000000000000000000000000000000000005C00000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/cp1-keystone-swift-cp2-glance/input-model07070100000027000041ED0000000000000000000000035C7A0D8A00000000000000000000000000000000000000000000006100000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/cp1-keystone-swift-cp2-glance/input-model/data07070100000028000081A40000000000000000000000015C7A0D8A00000C2B000000000000000000000000000000000000007300000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/cp1-keystone-swift-cp2-glance/input-model/data/control_plane.yml# # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- product: version: 2 control-planes: - name: cp1 control-plane-prefix: cp1 failure-zones: - AZ1 - AZ2 - AZ3 configuration-data: - SWIFT-CONFIG-CP1 common-service-components: - lifecycle-manager-target load-balancers: - name: lb provider: ip-cluster tls-components: - default components: - default roles: - internal - admin - name: extlb provider: ip-cluster external-name: myardana-cp1.test cert-file: my-public-cp1-cert tls-components: - default roles: - public clusters: - name: cluster1 cluster-prefix: c1 server-role: - SERVER1-ROLE member-count: 1 allocation-policy: strict service-components: - lifecycle-manager - lifecycle-manager-target - ntp-server - mysql - ip-cluster - keystone-api - rabbitmq - swift-ring-builder - swift-proxy - swift-account - swift-container - swift-object - memcached - tempest - name: cp2 control-plane-prefix: cp2 uses: - from: cp1 service-components: - all failure-zones: - AZ1 - AZ2 - AZ3 # configuration-data: # - OCTAVIA-CONFIG-CP2 # - NEUTRON-CONFIG-CP2 common-service-components: - lifecycle-manager-target - ntp-client load-balancers: - name: lb provider: ip-cluster tls-components: - default components: - default roles: - internal - admin - name: extlb provider: ip-cluster external-name: myardana-cp2.test cert-file: my-public-cp2-cert tls-components: - default roles: - public clusters: - name: cluster1 cluster-prefix: c1 server-role: - SERVER2-ROLE member-count: 1 allocation-policy: strict service-components: - mysql - ip-cluster - rabbitmq - glance-api - glance-registry 07070100000029000081A40000000000000000000000015C7A0D8A00000ACA000000000000000000000000000000000000006B00000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/cp1-keystone-swift-cp2-glance/input-model/data/disks.yml# # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- product: version: 2 disk-models: - name: DISKS volume-groups: # The policy is not to consume 100% of the space of each volume group. # 5% should be left free for snapshots and to allow for some flexibility. # sda_root is a templated value to align with whatever partition is really used # This value is checked in os config and replaced by the partition actually used # on sda e.g. sda1 or sda5 - name: ardana-vg physical-volumes: - /dev/sda_root logical-volumes: - name: root size: 75% fstype: ext4 mount: / - name: log size: 15% mount: /var/log fstype: ext4 mkfs-opts: -O large_file - name: crash size: 2% mount: /var/crash fstype: ext4 mkfs-opts: -O large_file - name: SWIFT-DISKS volume-groups: # The policy is not to consume 100% of the space of each volume group. # 5% should be left free for snapshots and to allow for some flexibility. # sda_root is a templated value to align with whatever partition is really used # This value is checked in os config and replaced by the partition actually used # on sda e.g. sda1 or sda5 - name: ardana-vg physical-volumes: - /dev/sda_root logical-volumes: - name: root size: 75% fstype: ext4 mount: / - name: log size: 15% mount: /var/log fstype: ext4 mkfs-opts: -O large_file - name: crash size: 2% mount: /var/crash fstype: ext4 mkfs-opts: -O large_file device-groups: - name: swiftobj devices: - name: /dev/sdb - name: /dev/sdc - name: /dev/sdd - name: /dev/sde - name: /dev/sdf consumer: name: swift attrs: rings: - account - container - object-0 0707010000002A000081A40000000000000000000000015C7A0D8A0000051E000000000000000000000000000000000000007400000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/cp1-keystone-swift-cp2-glance/input-model/data/network_groups.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- product: version: 2 network-groups: - name: ARDANA hostname-suffix: ardana component-endpoints: - lifecycle-manager - lifecycle-manager-target - name: MANAGEMENT hostname-suffix: mgmt hostname: true tags: - neutron.networks.vxlan - neutron.networks.vlan: provider-physical-network: physnet1 # tls-component-endpoints: # - barbican-api component-endpoints: - default # routes: # - default load-balancers: - extlb - lb - name: EXTERNAL-VM tags: - neutron.l3_agent.external_network_bridge 0707010000002B000081A40000000000000000000000015C7A0D8A00000407000000000000000000000000000000000000006D00000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/cp1-keystone-swift-cp2-glance/input-model/data/regions.yml# # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- product: version: 2 regions: - name: region1 includes: - control-plane: cp1 services: - all - control-plane: cp2 services: - all # - name: region2 # includes: # - control-plane: cp1 # services: # - all # - control-plane: cp3 # services: # - all 0707010000002C000081A40000000000000000000000015C7A0D8A00000364000000000000000000000000000000000000007200000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/cp1-keystone-swift-cp2-glance/input-model/data/server_roles.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- product: version: 2 server-roles: - name: SERVER1-ROLE interface-model: NET-INTERFACES disk-model: SWIFT-DISKS - name: SERVER2-ROLE interface-model: NET-INTERFACES disk-model: DISKS 0707010000002D000081A40000000000000000000000015C7A0D8A000004E5000000000000000000000000000000000000006D00000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/cp1-keystone-swift-cp2-glance/input-model/data/servers.yml# # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- product: version: 2 baremetal: netmask: 255.255.255.0 subnet: 192.168.110.0 server-interface: eth2 servers: - id: server1 ip-addr: 192.168.110.3 role: SERVER1-ROLE server-group: RACK1 mac-addr: a4:93:0c:4f:7c:73 nic-mapping: VAGRANT ilo-ip: 192.168.109.3 ilo-password: password ilo-user: admin - id: server2 ip-addr: 192.168.110.4 role: SERVER2-ROLE server-group: RACK2 mac-addr: b2:72:8d:ac:7c:6f nic-mapping: VAGRANT ilo-ip: 192.168.109.4 ilo-password: password ilo-user: admin 0707010000002E000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000006700000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/cp1-keystone-swift-cp2-glance/input-model/data/swift0707010000002F000081A40000000000000000000000015C7A0D8A0000060A000000000000000000000000000000000000007800000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/cp1-keystone-swift-cp2-glance/input-model/data/swift/swift_config.yml# # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- product: version: 2 configuration-data: - name: SWIFT-CONFIG-CP1 services: - swift data: control_plane_rings: swift-zones: - id: 1 server-groups: - CLOUD rings: - name: account display-name: Account Ring min-part-hours: 16 partition-power: 12 replication-policy: replica-count: 3 - name: container display-name: Container Ring min-part-hours: 16 partition-power: 12 replication-policy: replica-count: 3 - name: object-0 display-name: General default: yes min-part-hours: 16 partition-power: 12 replication-policy: replica-count: 3 07070100000030000041ED0000000000000000000000035C7A0D8A00000000000000000000000000000000000000000000005100000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/cp1-keystone-swift/input-model07070100000031000041ED0000000000000000000000035C7A0D8A00000000000000000000000000000000000000000000005600000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/cp1-keystone-swift/input-model/data07070100000032000081A40000000000000000000000015C7A0D8A000005BB000000000000000000000000000000000000006800000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/cp1-keystone-swift/input-model/data/control_plane.yml# # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- product: version: 2 control-planes: - name: ccp control-plane-prefix: ccp region-name: region1 failure-zones: - AZ1 - AZ2 - AZ3 common-service-components: - lifecycle-manager-target clusters: - name: cluster0 cluster-prefix: c0 server-role: - SERVER1-ROLE member-count: 1 allocation-policy: strict service-components: - lifecycle-manager - lifecycle-manager-target - mysql - ip-cluster - keystone-api - rabbitmq - ntp-server - swift-ring-builder - swift-proxy - swift-account - swift-container - swift-object - memcached 07070100000033000081A40000000000000000000000015C7A0D8A00000765000000000000000000000000000000000000006000000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/cp1-keystone-swift/input-model/data/disks.yml# # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- product: version: 2 disk-models: - name: DISKS volume-groups: # The policy is not to consume 100% of the space of each volume group. # 5% should be left free for snapshots and to allow for some flexibility. # sda_root is a templated value to align with whatever partition is really used # This value is checked in os config and replaced by the partition actually used # on sda e.g. sda1 or sda5 - name: ardana-vg physical-volumes: - /dev/sda_root logical-volumes: - name: root size: 75% fstype: ext4 mount: / - name: log size: 15% mount: /var/log fstype: ext4 mkfs-opts: -O large_file - name: crash size: 2% mount: /var/crash fstype: ext4 mkfs-opts: -O large_file device-groups: - name: swiftobj devices: - name: /dev/sdb - name: /dev/sdc - name: /dev/sdd - name: /dev/sde - name: /dev/sdf consumer: name: swift attrs: rings: - account - container - object-0 07070100000034000081A40000000000000000000000015C7A0D8A000003F4000000000000000000000000000000000000006200000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/cp1-keystone-swift/input-model/data/servers.yml# # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- product: version: 2 baremetal: netmask: 255.255.255.0 subnet: 192.168.110.0 server-interface: eth2 servers: - id: server1 ip-addr: 192.168.110.3 role: SERVER1-ROLE server-group: AZ1 mac-addr: a4:93:0c:4f:7c:73 nic-mapping: VAGRANT ilo-ip: 192.168.109.3 ilo-password: password ilo-user: admin 07070100000035000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000005C00000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/cp1-keystone-swift/input-model/data/swift07070100000036000081A40000000000000000000000015C7A0D8A00000561000000000000000000000000000000000000006600000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/cp1-keystone-swift/input-model/data/swift/rings.yml# # (c) Copyright 2015,2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- product: version: 2 ring-specifications: - region-name: region1 swift-zones: - id: 1 server-groups: - CLOUD rings: - name: account display-name: Account Ring min-part-hours: 16 partition-power: 12 replication-policy: replica-count: 3 - name: container display-name: Container Ring min-part-hours: 16 partition-power: 12 replication-policy: replica-count: 3 - name: object-0 display-name: General default: yes min-part-hours: 16 partition-power: 12 replication-policy: replica-count: 3 07070100000037000041ED0000000000000000000000035C7A0D8A00000000000000000000000000000000000000000000003A00000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/project07070100000038000041ED0000000000000000000000035C7A0D8A00000000000000000000000000000000000000000000004600000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/project/input-model07070100000039000041ED0000000000000000000000035C7A0D8A00000000000000000000000000000000000000000000004B00000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/project/input-model/data0707010000003A000081A40000000000000000000000015C7A0D8A00000943000000000000000000000000000000000000005D00000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/project/input-model/data/control_plane.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- product: version: 2 control-planes: - name: cp1 control-plane-prefix: cp1 failure-zones: - AZ1 - AZ2 - AZ3 configuration-data: - SWIFT-CONFIG-CP1 common-service-components: - lifecycle-manager-target - monasca-agent clusters: - name: cluster1 cluster-prefix: c1 server-role: - SERVER1-ROLE member-count: 1 allocation-policy: strict service-components: - lifecycle-manager - openstack-client - ntp-server - ntp-client - kafka - zookeeper - vertica - spark - monasca-api - monasca-persister - monasca-notifier - monasca-threshold - openstack-client - monasca-transform - mysql - rabbitmq - keystone-api - keystone-client - ip-cluster - tempest - swift-client - name: cluster2 cluster-prefix: c2 server-role: - SWPAC-ROLE member-count: 3 allocation-policy: strict service-components: - ntp-client - swift-proxy - swift-account - swift-container - swift-ring-builder - swift-client - memcached resources: - name: resource1 resource-prefix: r1 server-role: - SWOBJ-ROLE allocation-policy: strict min-count: 3 service-components: - ntp-client - swift-object 0707010000003B000081A40000000000000000000000015C7A0D8A00000F4C000000000000000000000000000000000000005500000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/project/input-model/data/disks.yml# # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- product: version: 2 disk-models: - name: DISKS volume-groups: # The policy is not to consume 100% of the space of each volume group. # 5% should be left free for snapshots and to allow for some flexibility. # sda_root is a templated value to align with whatever partition is really used # This value is checked in os config and replaced by the partition actually used # on sda e.g. sda1 or sda5 - name: ardana-vg physical-volumes: - /dev/sda_root logical-volumes: - name: root size: 75% fstype: ext4 mount: / - name: log size: 15% mount: /var/log fstype: ext4 mkfs-opts: -O large_file - name: crash size: 2% mount: /var/crash fstype: ext4 mkfs-opts: -O large_file - name: SWPAC-DISKS volume-groups: # The policy is not to consume 100% of the space of each volume group. # 5% should be left free for snapshots and to allow for some flexibility. # sda_root is a templated value to align with whatever partition is really used # This value is checked in os config and replaced by the partition actually used # on sda e.g. sda1 or sda5 - name: ardana-vg physical-volumes: - /dev/sda_root logical-volumes: - name: root size: 75% fstype: ext4 mount: / - name: log size: 15% mount: /var/log fstype: ext4 mkfs-opts: -O large_file - name: crash size: 2% mount: /var/crash fstype: ext4 mkfs-opts: -O large_file device-groups: - name: swiftpac devices: - name: /dev/sdb - name: /dev/sdc - name: /dev/sdd - name: /dev/sde - name: /dev/sdf consumer: name: swift attrs: rings: - account - container - name: SWOBJ-DISKS volume-groups: # The policy is not to consume 100% of the space of each volume group. # 5% should be left free for snapshots and to allow for some flexibility. # sda_root is a templated value to align with whatever partition is really used # This value is checked in os config and replaced by the partition actually used # on sda e.g. sda1 or sda5 - name: ardana-vg physical-volumes: - /dev/sda_root logical-volumes: - name: root size: 75% fstype: ext4 mount: / - name: log size: 15% mount: /var/log fstype: ext4 mkfs-opts: -O large_file - name: crash size: 2% mount: /var/crash fstype: ext4 mkfs-opts: -O large_file device-groups: - name: swiftobj devices: - name: /dev/sdb - name: /dev/sdc - name: /dev/sdd - name: /dev/sde - name: /dev/sdf consumer: name: swift attrs: rings: - object-0 - object-1 0707010000003C000081A40000000000000000000000015C7A0D8A0000089B000000000000000000000000000000000000005E00000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/project/input-model/data/net_interfaces.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- product: version: 2 interface-models: # These examples uses hed3 and hed4 as a bonded # pair for all networks on all three server roles # # Edit the device names and bond options # to match your environment # - name: CONTROLLER-INTERFACES network-interfaces: - name: BOND0 device: name: bond0 bond-data: options: mode: active-backup miimon: 200 primary: hed2 provider: linux devices: - name: hed2 network-groups: - MANAGEMENT - SWIFT - SWIFT2 - name: SWOBJ-INTERFACES network-interfaces: - name: BOND0 device: name: bond0 bond-data: options: mode: active-backup miimon: 200 primary: hed2 provider: linux devices: - name: hed2 network-groups: - MANAGEMENT - SWIFT - SWIFT2 - name: NET-INTERFACES network-interfaces: - name: BOND0 device: name: bond0 bond-data: options: mode: active-backup miimon: 200 primary: hed2 provider: linux devices: - name: hed2 network-groups: - MANAGEMENT - SWIFT - SWIFT2 0707010000003D000081A40000000000000000000000015C7A0D8A00000832000000000000000000000000000000000000005E00000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/project/input-model/data/network_groups.yml# # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- product: version: 2 network-groups: # # Management # # This is the network group that will be used to for # management traffic within the cloud. # # The interface used by this group will be presented # to Neutron as physnet1, and used by provider VLANS # # - name: MANAGEMENT hostname-suffix: mgmt hostname: true tls-component-endpoints: - mysql component-endpoints: - default routes: - default load-balancers: - provider: ip-cluster name: lb tls-components: - default components: - vertica - rabbitmq roles: - internal - admin cert-file: ardana-internal-cert - provider: ip-cluster name: extlb external-name: myardana.test tls-components: - default roles: - public cert-file: my-public-cert # # SWIFT # # This is the network group that will be used to for # Swift back-end traffic bewtween proxy, container, account # and object servers # - name: SWIFT hostname-suffix: swift component-endpoints: - swift-container - swift-account - swift-object - swift-rsync - name: SWIFT2 hostname-suffix: swift2 component-endpoints: - memcached 0707010000003E000081A40000000000000000000000015C7A0D8A00000481000000000000000000000000000000000000005800000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/project/input-model/data/networks.yml# # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- product: version: 2 networks: - name: MANAGEMENT-NET vlanid: 100 tagged-vlan: false cidr: 192.168.110.0/24 gateway-ip: 192.168.110.1 network-group: MANAGEMENT - name: SWIFT-NET vlanid: 101 tagged-vlan: true cidr: 192.168.245.0/24 gateway-ip: 192.168.245.1 network-group: SWIFT - name: SWIFT2-NET vlanid: 102 tagged-vlan: true cidr: 192.168.244.0/24 gateway-ip: 192.168.244.1 network-group: SWIFT2 0707010000003F000081A40000000000000000000000015C7A0D8A00000310000000000000000000000000000000000000005700000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/project/input-model/data/regions.yml# # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- product: version: 2 regions: - name: region1 includes: - control-plane: cp1 services: - all 07070100000040000081A40000000000000000000000015C7A0D8A00000951000000000000000000000000000000000000005D00000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/project/input-model/data/server_groups.yml# # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- product: version: 2 server-groups: # # Server Groups provide a mechanism for organizing servers # into a hierarchy that reflected the physical topology. # # When allocating a server the configuration processor # will search down the hierarchy from the list of server # groups identified as the failure-zones for the control # plane until it finds an available server of the requested # role. If the allocation policy is "strict" servers are # allocated from different failure-zones. # # When determining which network from a network group to # associate with a server the configuration processor will # search up the hierarchy from the server group containing the # server until it finds a network in the required network # group. # # # In this example there is only one network in each network # group and so we put all networks in the top level server # group. Below this we create server groups for three # failure zones, within which servers are grouped by racks. # # Note: the association of servers to server groups is part # of the server definition (servers.yml) # # # At the top of the tree we have a server groups for # networks that can reach all servers # - name: CLOUD server-groups: - AZ1 - AZ2 - AZ3 networks: - MANAGEMENT-NET - SWIFT-NET - SWIFT2-NET # # Failure Zones # - name: AZ1 server-groups: - RACK1 - name: AZ2 server-groups: - RACK2 - name: AZ3 server-groups: - RACK3 # # Racks # - name: RACK1 - name: RACK2 - name: RACK3 07070100000041000081A40000000000000000000000015C7A0D8A000003C3000000000000000000000000000000000000005C00000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/project/input-model/data/server_roles.yml# # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- product: version: 2 server-roles: - name: SERVER1-ROLE interface-model: NET-INTERFACES disk-model: DISKS - name: SWPAC-ROLE interface-model: CONTROLLER-INTERFACES disk-model: SWPAC-DISKS - name: SWOBJ-ROLE interface-model: SWOBJ-INTERFACES disk-model: SWOBJ-DISKS 07070100000042000081A40000000000000000000000015C7A0D8A0000097B000000000000000000000000000000000000005700000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/project/input-model/data/servers.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- product: version: 2 baremetal: netmask: 255.255.255.0 subnet: 192.168.110.0 server-interface: eth2 servers: - id: server1 ip-addr: 192.168.110.3 role: SERVER1-ROLE server-group: AZ1 mac-addr: a4:93:0c:4f:7c:73 nic-mapping: VAGRANT ilo-ip: 192.168.109.3 ilo-password: password ilo-user: admin - id: server2 ip-addr: 192.168.110.4 role: SWPAC-ROLE server-group: AZ1 mac-addr: b2:72:8d:ac:7c:6f nic-mapping: VAGRANT ilo-ip: 192.168.109.4 ilo-password: password ilo-user: admin - id: server3 ip-addr: 192.168.110.5 role: SWPAC-ROLE server-group: AZ2 mac-addr: 8a:8e:64:55:43:76 nic-mapping: VAGRANT ilo-ip: 192.168.109.5 ilo-password: password ilo-user: admin - id: server4 ip-addr: 192.168.110.6 role: SWPAC-ROLE server-group: AZ3 mac-addr: 8a:8e:64:55:44:77 nic-mapping: VAGRANT ilo-ip: 192.168.109.6 ilo-password: password ilo-user: admin - id: server5 ip-addr: 192.168.110.7 role: SWOBJ-ROLE server-group: AZ1 mac-addr: 8a:8e:64:55:42:79 nic-mapping: VAGRANT ilo-ip: 192.168.109.7 ilo-password: password ilo-user: admin - id: server6 ip-addr: 192.168.110.8 role: SWOBJ-ROLE server-group: AZ2 mac-addr: 8a:8e:64:55:46:75 nic-mapping: VAGRANT ilo-ip: 192.168.109.8 ilo-password: password ilo-user: admin - id: server7 ip-addr: 192.168.110.9 role: SWOBJ-ROLE server-group: AZ3 mac-addr: 8a:8e:64:57:41:82 nic-mapping: VAGRANT ilo-ip: 192.168.109.9 ilo-password: password ilo-user: admin 07070100000043000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000005100000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/project/input-model/data/swift07070100000044000081A40000000000000000000000015C7A0D8A0000073E000000000000000000000000000000000000006200000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/project/input-model/data/swift/swift_config.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- product: version: 2 configuration-data: - name: SWIFT-CONFIG-CP1 services: - swift data: control_plane_rings: swift-zones: - id: 1 server-groups: - CLOUD rings: - name: account display-name: Account Ring min-part-hours: 16 partition-power: 12 replication-policy: replica-count: 3 - name: container display-name: Container Ring min-part-hours: 16 partition-power: 12 replication-policy: replica-count: 3 - name: object-0 display-name: General default: no min-part-hours: 16 partition-power: 12 replication-policy: replica-count: 3 - name: object-1 display-name: Erasure-Code-Ring default: yes min-part-time: 16 partition-power: 12 erasure-coding-policy: ec-type: liberasurecode_rs_vand ec-num-data-fragments: 10 ec-num-parity-fragments: 4 ec-object-segment-size: 1048576 07070100000045000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000003800000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/tests07070100000046000081ED0000000000000000000000015C7A0D8A000003D5000000000000000000000000000000000000004900000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/tests/run-tempest.bash#!/bin/bash # # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # set -eux set -o pipefail ansible-playbook -i hosts/verb_hosts tempest-test-resources.yml TEMPBIN=/opt/stack/service/tempest/bin tempest_script=$TEMPBIN/ardana-tempest.sh if [[ -x $tempest_script ]]; then echo "No tempest script detected!" exit 1 fi sudo -u tempest $tempest_script <<< "+tempest\.api\.object_storage" 07070100000047000081A40000000000000000000000015C7A0D8A00000A2C000000000000000000000000000000000000004700000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/tests/test-plan.yaml# # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: Test that we have a good cloud logfile: tempest.log prefix: tempest exec: - validate-swift.bash tempest: - "+tempest.api.object_storage" - name: Test reconfigure logfile: testsuite-reconfigure.log prefix: reconfigure playbooks: - swift-reconfigure.yml exec: - validate-swift.bash - name: Test stop/start of swift logfile: stop-start.log prefix: stop-start playbooks: - swift-stop.yml - swift-start.yml exec: - validate-swift.bash - name: Test swift compare model rings logfile: swift-compare-model-rings.log prefix: swift-compare-model-rings playbooks: - swift-compare-model-rings.yml exec: - validate-swift.bash - name: Test swift dispersion populate logfile: swift-dispersion-populate.log prefix: swift-dispersion-populate playbooks: - swift-dispersion-populate.yml exec: - validate-swift.bash - name: Test swift dispersion report logfile: swift-dispersion-report.log prefix: swift-dispersion-report playbooks: - swift-dispersion-report.yml exec: - validate-swift.bash - name: Test swift reconfigure credentials change logfile: swift-reconfigure-credentials-change.log prefix: swift-reconfigure-credentials-change playbooks: - swift-reconfigure-credentials-change.yml exec: - validate-swift.bash - name: Test swift upgrade logfile: swift-upgrade.log prefix: swift-upgrade playbooks: - swift-upgrade.yml exec: - validate-swift.bash - name: Test clusters minus one proxy server # can't bring down object node as erasure coding requires at least 11 disks logfile: shutdown-nodes.log prefix: shutdown-nodes vms: - shutdown: - server4 tempest: - "+tempest.api.object_storage" - name: Bring up downed server and start services logfile: restart-server.log prefix: restart-server vms: - start: - server4 playbooks: - swift-start.yml exec: - validate-swift.bash 07070100000048000081ED0000000000000000000000015C7A0D8A000002C3000000000000000000000000000000000000004C00000000ardana-swift-8.0+git.1551502730.f4d219d/ardana-ci/tests/validate-swift.bash#!/bin/bash # # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # ansible-playbook -i hosts/verb_hosts swift-status.yml 07070100000049000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000002F00000000ardana-swift-8.0+git.1551502730.f4d219d/config0707010000004A000081A40000000000000000000000015C7A0D8A00000651000000000000000000000000000000000000004200000000ardana-swift-8.0+git.1551502730.f4d219d/config/swift-symlinks.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # # The following relative symlinks are created under the # my_cloud/config directory. --- symlinks: "swift/proxy-server.conf.j2": "roles/SWF-PRX/templates/proxy-server.conf.j2" "swift/account-server.conf.j2": "roles/SWF-ACC/templates/account-server.conf.j2" "swift/container-server.conf.j2": "roles/SWF-CON/templates/container-server.conf.j2" "swift/container-reconciler.conf.j2": "roles/SWF-CON/templates/container-reconciler.conf.j2" "swift/container-sync-realms.conf.j2": "roles/SWF-CON/templates/container-sync-realms.conf.j2" "swift/object-server.conf.j2": "roles/SWF-OBJ/templates/object-server.conf.j2" "swift/object-expirer.conf.j2": "roles/SWF-EXP/templates/object-expirer.conf.j2" "swift/swift-recon.j2": "roles/SWF-OBJ/templates/swift-recon.j2" "swift/rsyncd.conf.j2": "roles/_SWF-RSY/templates/rsyncd.conf.j2" "swift/swift.conf.j2": "roles/_SWF-CMN/templates/swift.conf.j2" "swift/memcache.conf.j2": "roles/_SWF-CMN/templates/memcache.conf.j2" 0707010000004B000041ED0000000000000000000000125C7A0D8A00000000000000000000000000000000000000000000002E00000000ardana-swift-8.0+git.1551502730.f4d219d/roles0707010000004C000041ED0000000000000000000000075C7A0D8A00000000000000000000000000000000000000000000003600000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-ACC0707010000004D000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000003F00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-ACC/defaults0707010000004E000081A40000000000000000000000015C7A0D8A0000079F000000000000000000000000000000000000004800000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-ACC/defaults/main.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- swift_component: swift_account # Flag to track restart requirement swift_account_reload_required: false swift_account_restart_required: false # Default max number of open files the swift account processes can use swift_account_limit_open_files: 65536 # Default service directories swift_account_server_conf_dir: "{{ 'swift-account-server' | config_dir() }}" # cmd Identifies the name of the binary used when starting the service # conf Specifies the name of the conf file to pass on the cmd line # when starting the service # conf_service Specifies the name of the service that contains the conf file # main Identifies the "main" swift services. It is currently not used. swift_account_services: swift-account-server: cmd: swift-account-server conf: account-server.conf conf_service: swift-account-server main: true swift-account-auditor: cmd: swift-account-auditor conf: account-server.conf conf_service: swift-account-server main: false swift-account-reaper: cmd: swift-account-reaper conf: account-server.conf conf_service: swift-account-server main: false swift-account-replicator: cmd: swift-account-replicator conf: account-server.conf conf_service: swift-account-server main: false 0707010000004F000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000003F00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-ACC/handlers07070100000050000081A40000000000000000000000015C7A0D8A00000334000000000000000000000000000000000000004800000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-ACC/handlers/main.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: swift_account_config_change set_fact: swift_account_reload_required: true - name: swift_account_venv_change set_fact: swift_account_restart_required: true 07070100000051000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000003B00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-ACC/meta07070100000052000081A40000000000000000000000015C7A0D8A000002B7000000000000000000000000000000000000004400000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-ACC/meta/main.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- dependencies: - role: _SWF-CMN - role: _SWF-RSY 07070100000053000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000003C00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-ACC/tasks07070100000054000081A40000000000000000000000015C7A0D8A00000770000000000000000000000000000000000000004A00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-ACC/tasks/configure.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - include: ../../_SWF-CMN/tasks/configure.yml - set_fact: swift_account_server_role: true - name: SWF-ACC | configure | Create swift_devices directory file: path: "{{ swift_devices }}" owner: root group: root mode: 0755 state: directory # With 'enable' SLES systemctl fails, claiming 'Too many levels of symbolic # links', if service is already enabled. Using reenable as workaround. - name: SWF-ACC | configure | Enable the swift account services to start on boot command: systemctl reenable "{{ item.key }}" with_dict: "{{ swift_account_services }}" # Note, this .conf file should NOT be in the service specific etc dir - name: SWF-ACC | configure | Copy swift.conf template: src: ../../_SWF-CMN/templates/swift.conf.j2 dest: "{{ swift_dir }}/swift.conf" owner: "{{ swift_user }}" group: "{{ swift_group }}" mode: 0400 notify: - swift_config_change - name: SWF-ACC | configure | Copy account-server.conf template: src: account-server.conf.j2 dest: "{{ swift_account_server_conf_dir }}/account-server.conf" owner: "{{ swift_user }}" group: "{{ swift_group }}" mode: 0400 notify: - swift_account_config_change - include: ../../_SWF-CMN/tasks/provision_storage.yml 07070100000055000081A40000000000000000000000015C7A0D8A0000098E000000000000000000000000000000000000004800000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-ACC/tasks/install.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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. # --- - include: ../../_SWF-CMN/tasks/install.yml - name: SWF-ACC | install | Update venv cache become: yes install_package: cache: update - name: SWF-ACC | install | Install Swift Account services install_package: name: swift service: "{{ item.key }}" state: present activate: act_off with_dict: "{{ swift_account_services }}" register: swift_account_install_result notify: swift_account_venv_change # See swift-ansible/README for a description of the result structure # returned by the install_package module # Get the swift venv version, it is the same for all swift services. - name: SWF-ACC | install | Set conf directory for the service set_fact: swift_venv_version: "{{ item.version }}" with_items: "{{ swift_account_install_result.results }}" # Since all swift account services are in the one swift venv just set one fact, # swift_account_server_conf_dir for all the swift_account_services - name: SWF-ACC | install | Set conf directory for the service set_fact: swift_account_server_conf_dir: "{{ 'swift-account-server' | config_dir(item.version) }}" with_items: "{{ swift_account_install_result.results }}" # Note all swift account services use the same configuration file, # account-server.conf which is located in the conf_dir for swift-account-server # service - name: SWF-ACC | install | Register the Swift Account services setup_systemd: service: "{{ item.item.key }}" cmd: "{{ item.item.value.cmd }}" user: "{{ swift_user }}" group: "{{ swift_group }}" args: "{{ item.item.value.conf_service | config_dir(swift_venv_version) }}/{{ item.item.value.conf }}" limit_open_files: "{{ swift_account_limit_open_files }}" when: item.changed with_items: "{{ swift_account_install_result.results }}" 07070100000056000081A40000000000000000000000015C7A0D8A0000039E000000000000000000000000000000000000004E00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-ACC/tasks/local_monitor.yml# # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: SWF-ACC | local_monitor | Setup active check on the Account Server locally become: yes monasca_agent_plugin: name: "httpcheck" args: "url=http://{{ account_bind_ip }}:{{ account_bind_port }}/healthcheck dimensions=service:object-storage,component:account-server" 07070100000057000081A40000000000000000000000015C7A0D8A00000835000000000000000000000000000000000000004600000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-ACC/tasks/start.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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. # --- - include: ../../_SWF-CMN/tasks/_check_restart.yml - name: SWF-ACC | start | Activate the latest install install_package: name: swift service: "{{ item.item.key }}" activate: act_on version: "{{ item.version }}" with_items: swift_account_install_result.results when: swift_account_install_result is defined - name: SWF-ACC | start | Restart rsyslog service: name: rsyslog state: restarted when: ardana_notify_swift_common_rsyslog_restart_required is defined and ardana_notify_swift_common_rsyslog_restart_required.changed and swift_common_rsyslog_restarted is not defined register: swift_common_rsyslog_restarted # For now restart rather than reload # No need to restart here if swift-account restart is also happening - name: SWF-ACC | start | Reload the Swift Account services service: name: "{{ item.key }}" state: restarted with_dict: "{{ swift_account_services }}" when: swift_account_reload_required and (not swift_restart_required) and (not swift_account_restart_required) - name: SWF-ACC | start | Restart the Swift Account services service: name: "{{ item.key }}" state: restarted with_dict: "{{ swift_account_services }}" when: swift_restart_required or swift_account_restart_required - name: SWF-ACC | start | Start the Swift Account services service: name: "{{ item.key }}" state: started with_dict: "{{ swift_account_services }}" 07070100000058000081A40000000000000000000000015C7A0D8A000002B8000000000000000000000000000000000000004700000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-ACC/tasks/status.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - include: ../../_SWF-CMN/tasks/_service_status.yml 07070100000059000081A40000000000000000000000015C7A0D8A00000327000000000000000000000000000000000000004500000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-ACC/tasks/stop.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: SWF-ACC | stop | Stop the Swift Account services service: name: "{{ item.key }}" state: stopped with_dict: "{{ swift_account_services }}" 0707010000005A000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004000000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-ACC/templates0707010000005B000081A40000000000000000000000015C7A0D8A0000060C000000000000000000000000000000000000005700000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-ACC/templates/account-server.conf.j2{# # # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. #} # This file has the Ardana OpenStack values that apply only to the Swift # service. # You may make changes to this file by adding sections/options below. [DEFAULT] bind_ip = {{ account_bind_ip }} bind_port = {{ account_bind_port }} mount_check = {{ mount_check }} devices = {{ swift_devices }} workers = {{ swift_worker_count }} [pipeline:main] pipeline = healthcheck recon account-server [filter:healthcheck] use = egg:swift#healthcheck [filter:recon] use = egg:swift#recon recon_cache_path = {{ recon_cache_path }} [app:account-server] use = egg:swift#account # TODO setting the reserved space small for now. fallocate_reserve = 1099511627 [filter:xprofile] use = egg:swift#xprofile [account-auditor] recon_cache_path = {{ recon_cache_path }} [account-reaper] delay_reaping = 604800 [account-replicator] recon_cache_path = {{ recon_cache_path }} ## Do NOT put anything after this line ## 0707010000005C000041ED0000000000000000000000075C7A0D8A00000000000000000000000000000000000000000000003600000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-CON0707010000005D000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000003F00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-CON/defaults0707010000005E000081A40000000000000000000000015C7A0D8A00000A16000000000000000000000000000000000000004800000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-CON/defaults/main.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- swift_component: swift_container # Flag to track restart requirement swift_container_restart_required: false swift_container_reload_required: false swift_container_reconciler_reload_required: false swift_container_sync_reload_required: false # Default service directories swift_container_server_conf_dir: "{{ 'swift-container-server' | config_dir() }}" swift_container_reconciler_conf_dir: "{{ 'swift-container-reconciler' | config_dir() }}" # cmd Identifies the name of the binary used when starting the service # conf Specifies the name of the conf file to pass on the cmd line # when starting the service # conf_service Specifies the name of the service that contains the conf file # main Identifies the "main" swift services. It is currently not used. swift_container_services: swift-container-server: cmd: swift-container-server conf: container-server.conf conf_service: swift-container-server main: true swift-container-auditor: cmd: swift-container-auditor conf: container-server.conf conf_service: swift-container-server main: false swift-container-reconciler: cmd: swift-container-reconciler conf: container-reconciler.conf conf_service: swift-container-reconciler main: false swift-container-sync: cmd: swift-container-sync conf: container-server.conf conf_service: swift-container-server main: false swift-container-replicator: cmd: swift-container-replicator conf: container-server.conf conf_service: swift-container-server main: false swift-container-updater: cmd: swift-container-updater conf: container-server.conf conf_service: swift-container-server main: false # Values needed for container sync intra-cluster realm swift_intracluster_sync_key: "{{ SWF_CON.vars.swift_intracluster_sync_key }}" swift_internal_endpoint: "{{ SWF_PRX.advertises.vips.private[0].url }}/v1/" 0707010000005F000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000003F00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-CON/handlers07070100000060000081A40000000000000000000000015C7A0D8A00000416000000000000000000000000000000000000004800000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-CON/handlers/main.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: swift_container_config_change set_fact: swift_container_reload_required: true - name: swift_container_reconciler_config_change set_fact: swift_container_reconciler_reload_required: true - name: swift_container_sync_config_change set_fact: swift_container_sync_reload_required: true - name: swift_container_venv_change set_fact: swift_container_restart_required: true 07070100000061000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000003B00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-CON/meta07070100000062000081A40000000000000000000000015C7A0D8A000002B7000000000000000000000000000000000000004400000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-CON/meta/main.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- dependencies: - role: _SWF-CMN - role: _SWF-RSY 07070100000063000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000003C00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-CON/tasks07070100000064000081A40000000000000000000000015C7A0D8A00000A44000000000000000000000000000000000000004A00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-CON/tasks/configure.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - include: ../../_SWF-CMN/tasks/configure.yml - set_fact: swift_container_server_role: true - name: SWF-CON | configure | Create swift_devices directory file: path: "{{ swift_devices }}" owner: root group: root mode: 0755 state: directory # With 'enable' SLES systemctl fails, claiming 'Too many levels of symbolic # links', if service is already enabled. Using reenable as workaround. - name: SWF-CON | configure | Enable the container object services to start on boot command: systemctl reenable {{ item.key }} with_dict: "{{ swift_container_services }}" # Note, swift.conf file should NOT be in the service specific etc dir - name: SWF-CON | configure | Copy swift.conf template: src: ../../_SWF-CMN/templates/swift.conf.j2 dest: "{{ swift_dir }}/swift.conf" owner: "{{ swift_user }}" group: "{{ swift_group }}" mode: 0400 notify: - swift_config_change - name: SWF-CON | configure | Copy container-server.conf template: src: container-server.conf.j2 dest: "{{ swift_container_server_conf_dir }}/container-server.conf" owner: "{{ swift_user }}" group: "{{ swift_group }}" mode: 0400 notify: - swift_container_config_change - name: SWF-CON | configure | Copy container-reconciler.conf template: src: container-reconciler.conf.j2 dest: "{{ swift_container_reconciler_conf_dir }}/container-reconciler.conf" owner: "{{ swift_user }}" group: "{{ swift_group }}" mode: 0400 notify: - swift_container_reconciler_config_change # Note, container-sync-realms.conf file should NOT be in the service specific # etc dir - name: SWF-CON | configure | Copy container-sync-realms.conf template: src: container-sync-realms.conf.j2 dest: "{{ swift_dir }}/container-sync-realms.conf" owner: "{{ swift_user }}" group: "{{ swift_group }}" mode: 0400 notify: - swift_container_sync_config_change - include: ../../_SWF-CMN/tasks/provision_storage.yml 07070100000065000081A40000000000000000000000015C7A0D8A000009A7000000000000000000000000000000000000004800000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-CON/tasks/install.yml# # (c) Copyright 2015,2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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. # --- - include: ../../_SWF-CMN/tasks/install.yml - name: SWF-CON | install | Update venv cache become: yes install_package: cache: update - name: SWF-CON | install | Install Swift Container services install_package: name: swift service: "{{ item.key }}" state: present activate: act_off with_dict: "{{ swift_container_services }}" register: swift_container_install_result notify: swift_container_venv_change # See swift-ansible/README for a description of the result structure # returned by the install_package module # Get the swift venv version, it is the same for all swift services. - name: SWF-CON | install | Set conf directory for the service set_fact: swift_venv_version: "{{ item.version }}" with_items: "{{ swift_container_install_result.results }}" # Set the conf dir for the latest installed swift venv - set_fact: swift_container_server_conf_dir: "{{ 'swift-container-server' | config_dir(swift_venv_version) }}" swift_container_reconciler_conf_dir: "{{ 'swift-container-reconciler' | config_dir(swift_venv_version) }}" # All swift container services except the reconciler use the same # configuration file, container-server.conf which is located in the # swift-contaier-server service etc directory. The conf_service value # in the result identifies which service has the conf file and # value.conf identifies the conf file to use - name: SWF-CON | install | Register the Swift Container Server setup_systemd: service: "{{ item.item.key }}" cmd: "{{ item.item.value.cmd }}" user: "{{ swift_user }}" group: "{{ swift_group }}" args: "{{ item.item.value.conf_service | config_dir(swift_venv_version) }}/{{ item.item.value.conf }}" when: item.changed with_items: "{{ swift_container_install_result.results }}" 07070100000066000081A40000000000000000000000015C7A0D8A000003A6000000000000000000000000000000000000004E00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-CON/tasks/local_monitor.yml# # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: SWF-CON | local_monitor | Setup active check on the Container Server locally become: yes monasca_agent_plugin: name: "httpcheck" args: "url=http://{{ container_bind_ip }}:{{ container_bind_port }}/healthcheck dimensions=service:object-storage,component:container-server" 07070100000067000081A40000000000000000000000015C7A0D8A00000283000000000000000000000000000000000000004900000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-CON/tasks/populate.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- 07070100000068000081A40000000000000000000000015C7A0D8A00000B47000000000000000000000000000000000000004600000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-CON/tasks/start.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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. # --- - include: ../../_SWF-CMN/tasks/_check_restart.yml - name: SWF-CON | start | Activate the latest install install_package: name: swift service: "{{ item.item.key }}" activate: act_on version: "{{ item.version }}" with_items: swift_container_install_result.results when: swift_container_install_result is defined - name: SWF-CON | start | Restart rsyslog service: name: rsyslog state: restarted when: ardana_notify_swift_common_rsyslog_restart_required is defined and ardana_notify_swift_common_rsyslog_restart_required.changed and swift_common_rsyslog_restarted is not defined register: swift_common_rsyslog_restarted # For now restart rather than reload # No need to restart here if swift-container restart is also happening - name: SWF-CON | start | Reload the Swift Container services service: name: "{{ item.key }}" state: restarted with_dict: "{{ swift_container_services }}" when: swift_container_reload_required and (not swift_restart_required) and (not swift_container_restart_required) - name: SWF-CON | start | Restart the Swift Container services service: name: "{{ item.key }}" state: restarted with_dict: "{{ swift_container_services }}" when: swift_restart_required or swift_container_restart_required # No need to restart here if swift-container restart is also happening - name: SWF-CON | start | Reload the Swift Container Reconciler service: name: swift-container-reconciler state: restarted when: swift_container_reconciler_reload_required and (not swift_container_reload_required) and (not swift_restart_required) and (not swift_container_restart_required) # No need to restart here if swift-container restart is also happening - name: SWF-CON | start | Reload the Swift Container Sync service: name: swift-container-sync state: restarted when: swift_container_sync_reload_required and (not swift_container_reload_required) and (not swift_restart_required) and (not swift_container_restart_required) - name: SWF-CON | start | Start the Swift Container services service: name: "{{ item.key }}" state: started with_dict: "{{ swift_container_services }}" 07070100000069000081A40000000000000000000000015C7A0D8A000002B8000000000000000000000000000000000000004700000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-CON/tasks/status.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - include: ../../_SWF-CMN/tasks/_service_status.yml 0707010000006A000081A40000000000000000000000015C7A0D8A0000032C000000000000000000000000000000000000004500000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-CON/tasks/stop.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: SWF-CON | stop | Stop the Swift Container services service: name: "{{ item.key }}" state: stopped with_dict: "{{ swift_container_services }}" 0707010000006B000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004000000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-CON/templates0707010000006C000081A40000000000000000000000015C7A0D8A00000475000000000000000000000000000000000000005D00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-CON/templates/container-reconciler.conf.j2{# # # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # #} # This file has the Ardana OpenStack values that apply only to the Swift # service. # You may make changes to this file by adding sections/options below. [DEFAULT] [container-reconciler] [pipeline:main] pipeline = catch_errors proxy-logging cache proxy-server [app:proxy-server] use = egg:swift#proxy [filter:cache] use = egg:swift#memcache [filter:proxy-logging] use = egg:swift#proxy_logging [filter:catch_errors] use = egg:swift#catch_errors ## Do NOT put anything after this line ## 0707010000006D000081A40000000000000000000000015C7A0D8A0000065B000000000000000000000000000000000000005900000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-CON/templates/container-server.conf.j2{# # # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # #} # This file has the Ardana OpenStack values that apply only to the Swift # service. # You may make changes to this file by adding sections/options below. [DEFAULT] bind_ip = {{ container_bind_ip }} bind_port = {{ container_bind_port }} mount_check = {{ mount_check }} devices = {{ swift_devices }} workers = {{ swift_worker_count }} [pipeline:main] pipeline = healthcheck recon container-server [filter:healthcheck] use = egg:swift#healthcheck [filter:recon] use = egg:swift#recon recon_cache_path = {{ recon_cache_path }} [app:container-server] use = egg:swift#container allow_versions = true # TODO setting the reserved space small for now. fallocate_reserve = 1099511627 [filter:xprofile] use = egg:swift#xprofile [container-auditor] recon_cache_path = {{ recon_cache_path }} [container-replicator] recon_cache_path = {{ recon_cache_path }} [container-updater] recon_cache_path = {{ recon_cache_path }} [container-sync] ## Do NOT put anything after this line ## 0707010000006E000081A40000000000000000000000015C7A0D8A00000A5B000000000000000000000000000000000000005E00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-CON/templates/container-sync-realms.conf.j2{# # # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # #} # This file has the Ardana OpenStack values that apply only to the Swift # service. # You may make changes to this file by adding sections/options below. [DEFAULT] mtime_check_interval = 300 # The intracluster realm facilitates syncing containers on this system [intracluster] key = {{ swift_intracluster_sync_key }} # key2 = cluster_thiscluster = {{ swift_internal_endpoint }} #Add sync realms here, for example: # [realm1] # key = realm1key # key2 = realm1key2 # cluster_name1 = https://host1/v1/ # cluster_name2 = https://host2/v1/ # Each section name is the name of a sync realm. A sync realm is a set of # clusters that have agreed to allow container syncing with each other. Realm # names will be considered case insensitive. # # The key is the overall cluster-to-cluster key used in combination with the # external users' key that they set on their containers' X-Container-Sync-Key # metadata header values. These keys will be used to sign each request the # container sync daemon makes and used to validate each incoming container sync # request. # # The key2 is optional and is an additional key incoming requests will be # checked against. This is so you can rotate keys if you wish; you move the # existing key to key2 and make a new key value. # # Any values in the realm section whose names begin with cluster_ will indicate # the name and endpoint of a cluster and will be used by external users in # their containers' X-Container-Sync-To metadata header values with the format # "realm_name/cluster_name/container_name". Realm and cluster names are # considered case insensitive. # # The endpoint is what the container sync daemon will use when sending out # requests to that cluster. Keep in mind this endpoint must be reachable by all # container servers, since that is where the container sync daemon runs. Note # the the endpoint ends with /v1/ and that the container sync daemon will then # add the account/container/obj name after that. ## Do NOT put anything after this line ## 0707010000006F000041ED0000000000000000000000075C7A0D8A00000000000000000000000000000000000000000000003600000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-EXP07070100000070000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000003F00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-EXP/defaults07070100000071000081A40000000000000000000000015C7A0D8A0000041C000000000000000000000000000000000000004800000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-EXP/defaults/main.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- swift_component: swift_expirer # Flag to track restart requirement swift_expirer_reload_required: false swift_expirer_restart_required: false # Default service directories swift_expirer_conf_dir: "{{ 'swift-object-expirer' | config_dir() }}" swift_expirer_services: swift-object-expirer: cmd: swift-object-expirer conf: object-expirer.conf conf_service: swift-object-expirer main: false 07070100000072000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000003F00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-EXP/handlers07070100000073000081A40000000000000000000000015C7A0D8A00000334000000000000000000000000000000000000004800000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-EXP/handlers/main.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: swift_expirer_config_change set_fact: swift_expirer_reload_required: true - name: swift_expirer_venv_change set_fact: swift_expirer_restart_required: true 07070100000074000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000003B00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-EXP/meta07070100000075000081A40000000000000000000000015C7A0D8A000002A4000000000000000000000000000000000000004400000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-EXP/meta/main.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- dependencies: - role: _SWF-CMN 07070100000076000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000003C00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-EXP/tasks07070100000077000081A40000000000000000000000015C7A0D8A000004E1000000000000000000000000000000000000004A00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-EXP/tasks/configure.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- # With 'enable' SLES systemctl fails, claiming 'Too many levels of symbolic # links', if service is already enabled. Using reenable as workaround. - name: SWF-EXP | configure | Enable the swift expirer services to start on boot command: systemctl reenable "{{ item.key }}" with_dict: "{{ swift_expirer_services }}" - name: SWF-EXP | configure | Copy object-expirer.conf template: src: object-expirer.conf.j2 dest: "{{ swift_expirer_conf_dir }}/object-expirer.conf" owner: "{{ swift_user }}" group: "{{ swift_group }}" mode: 0400 notify: - swift_expirer_config_change 07070100000078000081A40000000000000000000000015C7A0D8A0000088F000000000000000000000000000000000000004800000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-EXP/tasks/install.yml# # (c) Copyright 2015,2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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. # --- - name: SWF-EXP | install | Update venv cache become: yes install_package: cache: update - name: SWF-EXP | install | Install Swift Expirer services install_package: name: swift service: "{{ item.key }}" state: present activate: act_off with_dict: "{{ swift_expirer_services }}" register: swift_expirer_install_result notify: swift_expirer_venv_change # See swift-ansible/README for a description of the result structure # returned by the install_package module # Get the swift venv version, it is the same for all swift services. - name: SWF-EXP | install | Set conf directory for the service set_fact: swift_venv_version: "{{ item.version }}" with_items: "{{ swift_expirer_install_result.results }}" # Since all swift object expirer services are in the one swift venv just set # one fact, swift_object_expirer_conf_dir for all the swift_object_expirer_services - name: SWF-EXP | install | Set conf directory for the service set_fact: swift_expirer_conf_dir: "{{ 'swift-object-expirer' | config_dir(item.version) }}" with_items: "{{ swift_expirer_install_result.results }}" - name: SWF-EXP | install | Register the Swift Expirer services setup_systemd: service: "{{ item.item.key }}" cmd: "{{ item.item.value.cmd }}" user: "{{ swift_user }}" group: "{{ swift_group }}" args: "{{ item.item.value.conf_service | config_dir(swift_venv_version) }}/{{ item.item.value.conf }}" when: item.changed with_items: "{{ swift_expirer_install_result.results }}" 07070100000079000081A40000000000000000000000015C7A0D8A00000704000000000000000000000000000000000000004600000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-EXP/tasks/start.yml# # (c) Copyright 2015,2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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. # --- - include: ../../_SWF-CMN/tasks/_check_restart.yml - name: SWF-EXP | start | Activate the latest install install_package: name: swift service: "{{ item.item.key }}" activate: act_on version: "{{ item.version }}" with_items: swift_expirer_install_result.results when: swift_expirer_install_result is defined # For now restart rather than reload # Skip if a restart is required # No need to restart here if swift-expirer restart is also happening - name: SWF-EXP | start | Reload the Swift Expirer services service: name: "{{ item.key }}" state: restarted with_dict: "{{ swift_expirer_services }}" when: swift_expirer_reload_required and (not swift_restart_required) and (not swift_expirer_restart_required) - name: SWF-EXP | start | Restart the Swift Expirer services service: name: "{{ item.key }}" state: restarted with_dict: "{{ swift_expirer_services }}" when: swift_restart_required or swift_expirer_restart_required - name: SWF-EXP | start | Start the Swift Expirer services service: name: "{{ item.key }}" state: started with_dict: "{{ swift_expirer_services }}" 0707010000007A000081A40000000000000000000000015C7A0D8A000002B8000000000000000000000000000000000000004700000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-EXP/tasks/status.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - include: ../../_SWF-CMN/tasks/_service_status.yml 0707010000007B000081A40000000000000000000000015C7A0D8A00000327000000000000000000000000000000000000004500000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-EXP/tasks/stop.yml# # (c) Copyright 2015,2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: SWF-EXP | stop | Stop the Swift Expirer services service: name: "{{ item.key }}" state: stopped with_dict: "{{ swift_expirer_services }}" 0707010000007C000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004000000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-EXP/templates0707010000007D000081A40000000000000000000000015C7A0D8A000004A3000000000000000000000000000000000000005700000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-EXP/templates/object-expirer.conf.j2{# # # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # #} # This file has the Ardana OpenStack values that apply only to the Swift # service. # You may make changes to this file by adding sections/options below. [DEFAULT] swift_dir = {{ swift_dir }} user = {{ swift_user }} [object-expirer] [pipeline:main] pipeline = catch_errors proxy-logging cache proxy-server [app:proxy-server] use = egg:swift#proxy [filter:cache] use = egg:swift#memcache [filter:catch_errors] use = egg:swift#catch_errors [filter:proxy-logging] use = egg:swift#proxy_logging ## Do NOT put anything after this line ## 0707010000007E000041ED0000000000000000000000075C7A0D8A00000000000000000000000000000000000000000000003600000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-OBJ0707010000007F000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000003F00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-OBJ/defaults07070100000080000081A40000000000000000000000015C7A0D8A00000838000000000000000000000000000000000000004800000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-OBJ/defaults/main.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- swift_component: swift_object # Flag to track restart requirement swift_object_reload_required: false swift_object_restart_required: false # Default service directories swift_object_server_conf_dir: "{{ 'swift-object-server' | config_dir() }}" # Default max number of open files the swift object processes can use swift_object_limit_open_files: 65536 # The main key/value in the swift_object_services dict is currently # not used. The intention is in the future to handle what are # considered main swift services differently e.g. sending them # a SIGHUP when shutting them down to allow worker processes to # complete inflight transactions. swift_object_services: swift-object-server: cmd: swift-object-server conf: object-server.conf conf_service: swift-object-server main: true swift-object-auditor: cmd: swift-object-auditor conf: object-server.conf conf_service: swift-object-server main: false swift-object-updater: cmd: swift-object-updater conf: object-server.conf conf_service: swift-object-server main: false swift-object-replicator: cmd: swift-object-replicator conf: object-server.conf conf_service: swift-object-server main: false swift-object-reconstructor: cmd: swift-object-reconstructor conf: object-server.conf conf_service: swift-object-server main: false # The object expirer is not included, instead it is handled by the # SWF-EXP role 07070100000081000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000003F00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-OBJ/handlers07070100000082000081A40000000000000000000000015C7A0D8A00000330000000000000000000000000000000000000004800000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-OBJ/handlers/main.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: swift_object_config_change set_fact: swift_object_reload_required: true - name: swift_object_venv_change set_fact: swift_object_restart_required: true 07070100000083000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000003B00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-OBJ/meta07070100000084000081A40000000000000000000000015C7A0D8A000002B7000000000000000000000000000000000000004400000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-OBJ/meta/main.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- dependencies: - role: _SWF-CMN - role: _SWF-RSY 07070100000085000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000003C00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-OBJ/tasks07070100000086000081A40000000000000000000000015C7A0D8A00000819000000000000000000000000000000000000004A00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-OBJ/tasks/configure.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - include: ../../_SWF-CMN/tasks/configure.yml - set_fact: swift_object_server_role: true - name: SWF-OBJ | configure | Create swift_devices directory file: path: "{{ swift_devices }}" owner: root group: root mode: 0755 state: directory # With 'enable' SLES systemctl fails, claiming 'Too many levels of symbolic # links', if service is already enabled. Using reenable as workaround. - name: SWF-OBJ | configure | Enable the swift object services to start on boot command: systemctl reenable "{{ item.key }}" with_dict: "{{ swift_object_services }}" # Note, this .conf file should NOT be in the service specific etc dir - name: SWF-OBJ | configure | Copy swift.conf template: src: ../../_SWF-CMN/templates/swift.conf.j2 dest: "{{ swift_dir }}/swift.conf" owner: "{{ swift_user }}" group: "{{ swift_group }}" mode: 0400 notify: - swift_config_change - name: SWF-OBJ | configure | Copy object-server.conf template: src: object-server.conf.j2 dest: "{{ swift_object_server_conf_dir }}/object-server.conf" owner: "{{ swift_user }}" group: "{{ swift_group }}" mode: 0400 notify: - swift_object_config_change - name: SWF-OBJ | configure | Copy /etc/cron.d/swift-recon template: src: swift-recon.j2 dest: /etc/cron.d/swift-recon owner: root group: root mode: 0644 - include: ../../_SWF-CMN/tasks/provision_storage.yml 07070100000087000081A40000000000000000000000015C7A0D8A00000938000000000000000000000000000000000000004800000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-OBJ/tasks/install.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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. # --- - include: ../../_SWF-CMN/tasks/install.yml - name: SWF-OBJ | install | Update venv cache become: yes install_package: cache: update - name: SWF-OBJ | install | Install Swift Object services install_package: name: swift service: "{{ item.key }}" state: present activate: act_off with_dict: "{{ swift_object_services }}" register: swift_object_install_result notify: swift_object_venv_change # See swift-ansible/README for a description of the result structure # returned by the install_package module - name: SWF-OBJ | install | Set conf directory for the service set_fact: swift_venv_version: "{{ item.version }}" with_items: "{{ swift_object_install_result.results }}" # Since all swift object services are in the one swift venv just set one fact, # swift_object_server_conf_dir for all the swift_object_services - name: SWF-OBJ | install | Set conf directory for the service set_fact: swift_object_server_conf_dir: "{{ 'swift-object-server' | config_dir(item.version) }}" with_items: "{{ swift_object_install_result.results }}" # Note all swift object services use the same configuration file, # object-server.conf which is located in the conf_dir for swift-object-server # service - name: SWF-OBJ | install | Register the Swift Object services setup_systemd: service: "{{ item.item.key }}" cmd: "{{ item.item.value.cmd }}" user: "{{ swift_user }}" group: "{{ swift_group }}" args: "{{ item.item.value.conf_service | config_dir(swift_venv_version) }}/{{ item.item.value.conf }}" limit_open_files: "{{ swift_object_limit_open_files }}" when: item.changed with_items: "{{ swift_object_install_result.results }}" 07070100000088000081A40000000000000000000000015C7A0D8A0000039A000000000000000000000000000000000000004E00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-OBJ/tasks/local_monitor.yml# # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: SWF-OBJ | local_monitor | Setup active check on the Object Server locally become: yes monasca_agent_plugin: name: "httpcheck" args: "url=http://{{ object_bind_ip }}:{{ object_bind_port }}/healthcheck dimensions=service:object-storage,component:object-server" 07070100000089000081A40000000000000000000000015C7A0D8A00000283000000000000000000000000000000000000004900000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-OBJ/tasks/populate.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- 0707010000008A000081A40000000000000000000000015C7A0D8A0000082A000000000000000000000000000000000000004600000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-OBJ/tasks/start.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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. # --- - include: ../../_SWF-CMN/tasks/_check_restart.yml - name: SWF-OBJ | start | Activate the latest install install_package: name: swift service: "{{ item.item.key }}" activate: act_on version: "{{ item.version }}" with_items: swift_object_install_result.results when: swift_object_install_result is defined - name: SWF-OBJ | start | Restart rsyslog service: name: rsyslog state: restarted when: ardana_notify_swift_common_rsyslog_restart_required is defined and ardana_notify_swift_common_rsyslog_restart_required.changed and swift_common_rsyslog_restarted is not defined register: swift_common_rsyslog_restarted # For now restart rather than reload # No need to restart here if swift-object restart is also happening - name: SWF-OBJ | start | Reload the Swift Object services service: name: "{{ item.key }}" state: restarted with_dict: "{{ swift_object_services }}" when: swift_object_reload_required and (not swift_restart_required) and (not swift_object_restart_required) - name: SWF-OBJ | start | Restart the Swift Object services service: name: "{{ item.key }}" state: restarted with_dict: "{{ swift_object_services }}" when: swift_restart_required or swift_object_restart_required - name: SWF-OBJ | start | Start the Swift Object services service: name: "{{ item.key }}" state: started with_dict: "{{ swift_object_services }}" 0707010000008B000081A40000000000000000000000015C7A0D8A000002B8000000000000000000000000000000000000004700000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-OBJ/tasks/status.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - include: ../../_SWF-CMN/tasks/_service_status.yml 0707010000008C000081A40000000000000000000000015C7A0D8A00000325000000000000000000000000000000000000004500000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-OBJ/tasks/stop.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: SWF-OBJ | stop | Stop the Swift Object services service: name: "{{ item.key }}" state: stopped with_dict: "{{ swift_object_services }}" 0707010000008D000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004000000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-OBJ/templates0707010000008E000081A40000000000000000000000015C7A0D8A0000071A000000000000000000000000000000000000005600000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-OBJ/templates/object-server.conf.j2{# # # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # #} # This file has the Ardana OpenStack values that apply only to the Swift # service. # You may make changes to this file by adding sections/options below. [DEFAULT] bind_ip = {{ object_bind_ip }} {% if ',' in object_bind_port %} bind_port = {{ object_bind_port.split(',')[0] }} {% elif ':' in object_bind_port %} bind_port = {{ object_bind_port.split(':')[0] }} {% else %} bind_port = {{ object_bind_port }} {% endif %} mount_check = {{ mount_check }} devices = {{ swift_devices }} workers = {{ swift_worker_count }} [pipeline:main] pipeline = healthcheck recon object-server [filter:healthcheck] use = egg:swift#healthcheck [filter:recon] use = egg:swift#recon recon_cache_path = {{ recon_cache_path }} [app:object-server] use = egg:swift#object # TODO setting the reserved space small for now. fallocate_reserve = 1099511627 [filter:xprofile] use = egg:swift#xprofile [object-auditor] recon_cache_path = {{ recon_cache_path }} [object-replicator] recon_cache_path = {{ recon_cache_path }} [object-reconstructor] recon_cache_path = {{ recon_cache_path }} [object-updater] recon_cache_path = {{ recon_cache_path }} ## Do NOT put anything after this line ## 0707010000008F000081A40000000000000000000000015C7A0D8A00000373000000000000000000000000000000000000004F00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-OBJ/templates/swift-recon.j2{# # # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # #} # Cronjob to track async pending on the object server. SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin MAILTO="" */5 * * * * {{ swift_user }} swift-recon-cron {{ swift_object_conf_dir }}/object-server.conf 07070100000090000041ED0000000000000000000000075C7A0D8A00000000000000000000000000000000000000000000003600000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-PRX07070100000091000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000003F00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-PRX/defaults07070100000092000081A40000000000000000000000015C7A0D8A000005DC000000000000000000000000000000000000004800000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-PRX/defaults/main.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- swift_component: swift_proxy # Flag to track restart requirement swift_proxy_reload_required: false swift_proxy_restart_required: false # Default max number of open files the swift proxy processes can use swift_proxy_limit_open_files: 65536 # Default service directories swift_proxy_server_conf_dir: "{{ 'swift-proxy-server' | config_dir() }}" # cmd Identifies the name of the binary used when starting the service # conf Specifies the name of the conf file to pass on the cmd line # when starting the service # conf_service Specifies the name of the service that contains the conf file # main Identifies the "main" swift services. It is currently not used. swift_proxy_services: swift-proxy-server: cmd: swift-proxy-server conf: proxy-server.conf conf_service: swift-proxy-server main: true 07070100000093000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000003F00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-PRX/handlers07070100000094000081A40000000000000000000000015C7A0D8A0000032C000000000000000000000000000000000000004800000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-PRX/handlers/main.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: swift_proxy_config_change set_fact: swift_proxy_reload_required: true - name: swift_proxy_venv_change set_fact: swift_proxy_restart_required: true 07070100000095000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000003B00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-PRX/meta07070100000096000081A40000000000000000000000015C7A0D8A000002A4000000000000000000000000000000000000004400000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-PRX/meta/main.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- dependencies: - role: _SWF-CMN 07070100000097000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000003C00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-PRX/tasks07070100000098000081A40000000000000000000000015C7A0D8A000008CE000000000000000000000000000000000000004A00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-PRX/tasks/configure.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - include: ../../_SWF-CMN/tasks/configure.yml - set_fact: swift_proxy_server_role: true # With 'enable' SLES systemctl fails, claiming 'Too many levels of symbolic # links', if service is already enabled. Using reenable as workaround. - name: SWF-PRX | configure | Enable the swift proxy services to start on boot command: systemctl reenable "{{ item.key }}" with_dict: "{{ swift_proxy_services }}" # Note, this .conf file should NOT be in a venv specific etc dir - name: SWF-PRX | configure | Copy swift.conf template: src: ../../_SWF-CMN/templates/swift.conf.j2 dest: "{{ swift_dir }}/swift.conf" owner: "{{ swift_user }}" group: "{{ swift_group }}" mode: 0400 notify: - swift_config_change - name: SWF-PRX | configure | Copy proxy-server.conf to service specific etc template: src: proxy-server.conf.j2 dest: "{{ swift_proxy_server_conf_dir }}/proxy-server.conf" owner: "{{ swift_user }}" group: "{{ swift_group }}" mode: 0400 notify: - swift_proxy_config_change - name: SWF-PRX | configure | Create auditing logging directory if not there file: path: "{{ swift_audit_log_base_location }}/swift" owner: "{{ swift_user }}" group: "{{ swift_group }}" mode: 0755 state: directory when: swift_audit_enabled - name: SWF-PRX | configure | Create api_audit_map.conf from template template: src: api_audit_map.conf.j2 dest: "{{ swift_dir }}/api_audit_map.conf" owner: "{{ swift_user }}" group: "{{ swift_group }}" mode: 0400 when: swift_audit_enabled notify: - swift_proxy_config_change 07070100000099000081A40000000000000000000000015C7A0D8A000008B0000000000000000000000000000000000000004800000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-PRX/tasks/install.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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. # --- - include: ../../_SWF-CMN/tasks/install.yml - name: SWF-PRX | install | Update venv cache become: yes install_package: cache: update - name: SWF-PRX | install | Install Swift Proxy service install_package: name: swift service: "{{ item.key }}" state: present activate: act_off with_dict: "{{ swift_proxy_services }}" register: swift_proxy_install_result notify: swift_proxy_venv_change # See swift-ansible/README for a description of the result structure # returned by the install_package module # Get the swift venv version, it is the same for all swift services. - name: SWF-PRX | install | Set conf directory for the service set_fact: swift_venv_version: "{{ item.version }}" with_items: "{{ swift_proxy_install_result.results }}" # swift_proxy_server_conf_dir is set to the correct dir whether the # venv version changed or not. - name: SWF-PRX | install | Set conf directory for the venv version set_fact: swift_proxy_server_conf_dir: "{{ 'swift-proxy-server' | config_dir(item.version) }}" with_items: "{{ swift_proxy_install_result.results }}" - name: SWF-PRX | install | Register the Swift Proxy services setup_systemd: service: "{{ item.item.key }}" cmd: "{{ item.item.value.cmd }}" user: "{{ swift_user }}" group: "{{ swift_group }}" args: "{{ item.item.value.conf_service | config_dir(swift_venv_version) }}/{{ item.item.value.conf }}" limit_open_files: "{{ swift_proxy_limit_open_files }}" when: item.changed with_items: "{{ swift_proxy_install_result.results }}" 0707010000009A000081A40000000000000000000000015C7A0D8A000004C7000000000000000000000000000000000000004E00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-PRX/tasks/local_monitor.yml# # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: SWF-PRX | local_monitor | Setup active check on the Proxy Server locally become: yes monasca_agent_plugin: name: "httpcheck" args: "url=http://{{ proxy_bind_ip }}:{{ proxy_bind_port }}/healthcheck dimensions=service:object-storage,component:proxy-server" - name: SWF-PRX | local_monitor | Setup active check on the Object Store VIP become: yes monasca_agent_plugin: name: "httpcheck" args: "url={{ object_store_private_vip }}/healthcheck dimensions=service:object-storage,component:object-storage-vip,monitored_host_type:vip,api_endpoint:private" 0707010000009B000081A40000000000000000000000015C7A0D8A00000283000000000000000000000000000000000000004900000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-PRX/tasks/populate.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- 0707010000009C000081A40000000000000000000000015C7A0D8A0000081F000000000000000000000000000000000000004600000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-PRX/tasks/start.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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. # --- - include: ../../_SWF-CMN/tasks/_check_restart.yml - name: SWF-PRX | start | Activate the latest install install_package: name: swift service: "{{ item.item.key }}" activate: act_on version: "{{ item.version }}" with_items: swift_proxy_install_result.results when: swift_proxy_install_result is defined - name: SWF-PRX | start | Restart rsyslog service: name: rsyslog state: restarted when: ardana_notify_swift_common_rsyslog_restart_required is defined and ardana_notify_swift_common_rsyslog_restart_required.changed and swift_common_rsyslog_restarted is not defined register: swift_common_rsyslog_restarted # For now restart rather than reload # No need to restart here if swift-proxy restart is also happening - name: SWF-PRX | start | Reload the Swift Proxy services service: name: swift-proxy-server state: restarted with_dict: "{{ swift_proxy_services }}" when: swift_proxy_reload_required and (not swift_restart_required) and (not swift_proxy_restart_required) - name: SWF-PRX | start | Restart the Swift Proxy services service: name: "{{ item.key }}" state: restarted with_dict: "{{ swift_proxy_services }}" when: swift_restart_required or swift_proxy_restart_required - name: SWF-PRX | start | Start the Swift Proxy services service: name: "{{ item.key }}" state: started with_dict: "{{ swift_proxy_services }}" 0707010000009D000081A40000000000000000000000015C7A0D8A000002B8000000000000000000000000000000000000004700000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-PRX/tasks/status.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - include: ../../_SWF-CMN/tasks/_service_status.yml 0707010000009E000081A40000000000000000000000015C7A0D8A00000323000000000000000000000000000000000000004500000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-PRX/tasks/stop.yml# # (c) Copyright 2015,2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: SWF-PRX | stop | Stop the Swift Proxy services service: name: "{{ item.key }}" state: stopped with_dict: "{{ swift_proxy_services }}" 0707010000009F000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004000000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-PRX/templates070701000000A0000081A40000000000000000000000015C7A0D8A000003B4000000000000000000000000000000000000005600000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-PRX/templates/api_audit_map.conf.j2{# # # (c) Copyright 2015,2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # #} [DEFAULT] # default target endpoint type # should match the endpoint type defined in service catalog target_endpoint_type = None # possible end path of api requests [path_keywords] # map endpoint type defined in service catalog to CADF typeURI [service_endpoints] object = service/storage/object 070701000000A1000081A40000000000000000000000015C7A0D8A00000EB0000000000000000000000000000000000000005500000000ardana-swift-8.0+git.1551502730.f4d219d/roles/SWF-PRX/templates/proxy-server.conf.j2{# # # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # #} # This file has the Ardana OpenStack values that apply only to the Swift # service. # You may make changes to this file by adding sections/options below. [DEFAULT] bind_port = {{ proxy_bind_port }} bind_ip = {{ proxy_bind_ip }} swift_dir = {{ swift_dir }} user = {{ swift_user }} workers = {{ swift_worker_count }} [pipeline:main] pipeline = catch_errors gatekeeper healthcheck proxy-logging cache container_sync bulk crossdomain tempurl formpost ratelimit authtoken keystoneauth{%- if swift_audit_enabled|bool %} audit{% endif %} staticweb container-quotas account-quotas slo dlo versioned_writes proxy-logging name_check proxy-server [app:proxy-server] use = egg:swift#proxy account_autocreate = true sorting_method = timing [filter:catch_errors] use = egg:swift#catch_errors [filter:gatekeeper] use = egg:swift#gatekeeper [filter:healthcheck] use = egg:swift#healthcheck [filter:proxy-logging] use = egg:swift#proxy_logging [filter:cache] use = egg:swift#memcache [filter:container_sync] use = egg:swift#container_sync [filter:bulk] use = egg:swift#bulk [filter:crossdomain] use = egg:swift#crossdomain [filter:tempurl] use = egg:swift#tempurl [filter:formpost] use = egg:swift#formpost [filter:ratelimit] use = egg:swift#ratelimit [filter:authtoken] paste.filter_factory = keystonemiddleware.auth_token:filter_factory auth_uri = {{ keystone_auth_uri }} auth_url = {{ keystone_auth_url }} auth_plugin = password project_domain_name = {{ keystone_default_domain }} user_domain_name = {{ keystone_default_domain }} project_name = {{ keystone_service_tenant }} username = {{ swift_user_name }} password = {{ swift_user_password }} cache = swift.cache {% if SWF.audit.enabled|bool %} include_service_catalog = True {% else %} include_service_catalog = False {% endif %} delay_auth_decision = true #memcache_security_strategy = ENCRYPT #memcache_secret_key = {{ swift_hash_path_prefix }} cafile = {{ swift_ca_file }} service_token_roles_required = true service_token_roles = admin {% if SWF.audit.enabled|bool %} [filter:audit] paste.filter_factory = keystonemiddleware.audit:filter_factory audit_map_file = /etc/swift/api_audit_map.conf use_oslo_messaging = false {% endif %} # Note to reviewer: I'm including all possible filters but not all are # included in the pipeline (because they are not required) [filter:versioned_writes] use = egg:swift#versioned_writes allow_versioned_writes = true [filter:keystoneauth] use = egg:swift#keystoneauth operator_roles = admin, swiftoperator, _member_, Member [filter:staticweb] use = egg:swift#staticweb url_base = https:// [filter:container-quotas] use = egg:swift#container_quotas [filter:account-quotas] use = egg:swift#account_quotas [filter:slo] use = egg:swift#slo [filter:dlo] use = egg:swift#dlo [filter:domain_remap] use = egg:swift#domain_remap [filter:cname_lookup] use = egg:swift#cname_lookup [filter:name_check] use = egg:swift#name_check forbidden_chars = "<> maximum_length = 2348 [filter:list-endpoints] use = egg:swift#list_endpoints [filter:xprofile] use = egg:swift#xprofile ## Do NOT put anything after this line ## 070701000000A2000041ED0000000000000000000000095C7A0D8A00000000000000000000000000000000000000000000003700000000ardana-swift-8.0+git.1551502730.f4d219d/roles/_SWF-CMN070701000000A3000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004000000000ardana-swift-8.0+git.1551502730.f4d219d/roles/_SWF-CMN/defaults070701000000A4000081A40000000000000000000000015C7A0D8A000018B1000000000000000000000000000000000000004900000000ardana-swift-8.0+git.1551502730.f4d219d/roles/_SWF-CMN/defaults/main.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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. # --- swift_restart_required: false # Flags used to indicate swift system type swift_proxy_server_role: false swift_account_server_role: false swift_container_server_role: false swift_object_server_role: false # Number of maximum worker allowed regardless of CPUs available swift_max_workers: 8 # Number of workers for swift workers. The default will be the # maximum allowed by variable swift_max_workers swift_worker_count: "{{ ansible_processor_count * ansible_processor_cores * 2 | default('{{ swift_max_workers }}') }}" swift_dir: /etc/swift swiftlm_dir: /etc/swiftlm swift_user: swift swift_group: swift swift_shell: /bin/false # Need to have valid home dir, otherwise sudo -u swift will fail on SLES swift_createhome: yes # Note to reviewer. We need to pick a swift uid/gid that won't change # from node to node. For now I'm hardcoding it here. Alternate suggestions # welcome # # WARNING: please DO NOT remove and change swift_uid and swift_gid with # first updating the Swift tests first. Those tests are relying on the # hardcoded uid and gid. swift_uid: 154 swift_gid: 154 swift_hash_path_suffix: "{{ SWF_CMN.vars.swift_hash_path_prefix }}" swift_hash_path_prefix: "{{ SWF_CMN.vars.swift_hash_path_prefix }}" # Note to Reviewers: additional storage polifies like the commented out # silver policy need to come from the user i.e. need a way for the user # to specify storage policies and to have CP pass the data down. # For now can hardcode here. #storage_policies: # - policy: # index: 0 # name: Policy-0 # default: 'yes' # - policy: # index: 1 # name: silver mount_check: true swift_devices: /srv/node/ recon_cache_path: /var/cache/swift swift_logs_dir: /var/log/swift swift_facts_dir: /etc/ansible/facts.d # Directory where swiftlm conf files are located swiftlm_etc: /etc/swiftlm swiftlm_cache_path: /var/cache/swiftlm swiftlm_scan_metrics: "{{ swiftlm_cache_path }}/swiftlm_scan_metrics.json" # Swift service swift_user_name: "{{ SWF_PRX.consumes_KEY_API.vars.keystone_swift_user }}" swift_user_password: "{{ SWF_PRX.consumes_KEY_API.vars.keystone_swift_password | quote }}" # Swift monitor tenant/user used by swift-uptime-mon swift_monitor_tenant: "{{ SWF_PRX.consumes_KEY_API.vars.keystone_swift_monitor_user }}" swift_monitor_description: 'Tenant-for-swift-uptime-mon' swift_monitor_user: "{{ SWF_PRX.consumes_KEY_API.vars.keystone_swift_monitor_user }}" swift_monitor_password: "{{ SWF_PRX.consumes_KEY_API.vars.keystone_swift_monitor_password }}" # Swift dispersion tenant/user used by swift-dispersion-populate swift_dispersion_tenant: "{{ SWF_PRX.consumes_KEY_API.vars.keystone_swift_dispersion_user }}" swift_dispersion_description: 'Tenant-for-swift-dispersion-populate' swift_dispersion_user: "{{ SWF_PRX.consumes_KEY_API.vars.keystone_swift_dispersion_user }}" swift_dispersion_password: "{{ SWF_PRX.consumes_KEY_API.vars.keystone_swift_dispersion_password }}" # Swift bind ips/ports proxy_bind_port: "{% if host.bind.SWF_PRX is defined %}{{ host.bind.SWF_PRX.internal.port }}{% endif %}" proxy_bind_ip: "{% if host.bind.SWF_PRX is defined %}{{ host.bind.SWF_PRX.internal.ip_address }}{% endif %}" account_bind_port: "{% if host.bind.SWF_ACC is defined %}{{ host.bind.SWF_ACC.internal.port }}{% endif %}" account_bind_ip: "{% if host.bind.SWF_ACC is defined %}{{ host.bind.SWF_ACC.internal.ip_address }}{% endif %}" container_bind_port: "{% if host.bind.SWF_CON is defined %}{{ host.bind.SWF_CON.internal.port }}{% endif %}" container_bind_ip: "{% if host.bind.SWF_CON is defined %}{{ host.bind.SWF_CON.internal.ip_address }}{% endif %}" object_bind_port: "{% if host.bind.SWF_OBJ is defined %}{{ host.bind.SWF_OBJ.internal.port }}{% endif %}" object_bind_ip: "{% if host.bind.SWF_OBJ is defined %}{{ host.bind.SWF_OBJ.internal.ip_address }}{% endif %}" rsync_bind_port: "{% if host.bind.SWF_RSY is defined %}{{ host.bind.SWF_RSY.internal.port }}{% endif %}" rsync_bind_ip: "{% if host.bind.SWF_RSY is defined %}{{ host.bind.SWF_RSY.internal.ip_address }}{% endif %}" # Keystone authtoken # auth_uri should point to a Keystone service from which users may # retrieve tokens. keystone_auth_uri: "{{ KEY_API.advertises.vips.public[0].url }}" # auth_url points to the Keystone Admin service. This information is # used by the middleware to actually query Keystone about the validity of the # authentication tokens. It is not necessary to append any Keystone API version # number to this URI. keystone_auth_url: "{{ SWF_PRX.consumes_KEY_API.vips.private[0].url }}" keystone_default_domain: "{{ KEY_API.vars.keystone_default_domain }}" keystone_service_tenant: "{{ KEY_API.vars.keystone_service_tenant }}" memcache_servers: "{{ SWF_PRX.consumes_FND_MEM.members.private }}" swift_ca_file: "{{ trusted_ca_bundle }}" swift_storage_servers: "{{ groups[verb_hosts.SWF_ACC] | union(groups[verb_hosts.SWF_CON]) | union(groups[verb_hosts.SWF_OBJ]) | unique }}" # Swift conf dirs swift_object_conf_dir: /opt/stack/service/swift-object-server/etc # Audit configuration swift_audit_enabled: "{{ SWF.audit.enabled }}" swift_audit_log_base_location: "{{ SWF.audit.dir }}" swift_audit_log_file: "{{SWF.audit.dir }}/swift/swift-audit.log" #Object Store object_store_private_vip: "{{ SWF_PRX.advertises.vips.private[0].url }}" # Ring specifications are now in configuration-data. However, to transition to # the new layout, we support the rings being in a top-level ring-specifications # object. ring_specifications: "{% if config_data.SWF is defined and config_data.SWF.control_plane_rings is defined %}{{ config_data.SWF.control_plane_rings }}{% else %}{{ global.all_ring_specifications | default([])}}{% endif %}" 070701000000A5000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004000000000ardana-swift-8.0+git.1551502730.f4d219d/roles/_SWF-CMN/handlers070701000000A6000081A40000000000000000000000015C7A0D8A000002D2000000000000000000000000000000000000004900000000ardana-swift-8.0+git.1551502730.f4d219d/roles/_SWF-CMN/handlers/main.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: swift_config_change set_fact: swift_restart_required: true 070701000000A7000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000003F00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/_SWF-CMN/library070701000000A8000081A40000000000000000000000015C7A0D8A000010E8000000000000000000000000000000000000005300000000ardana-swift-8.0+git.1551502730.f4d219d/roles/_SWF-CMN/library/storage_policies.py#!/usr/bin/python # # (c) Copyright 2015,2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # import json import shlex import sys def dash_to_underscore(obj): """ Configuration data is not underscored :param obj: The object to convert :return:The converted object """ if isinstance(obj, list): ret_obj = [] for item in obj: ret_obj.append(dash_to_underscore(item)) elif isinstance(obj, dict): ret_obj = dict() for key in obj.keys(): new_key = key.replace('-', '_') ret_obj[new_key] = dash_to_underscore(obj[key]) else: ret_obj = obj return ret_obj def get_storage_policies(ring_model): ring_model = dash_to_underscore(ring_model) rings = [] if isinstance(ring_model, dict): # Rings are now in configuration data rings = ring_model.get('rings', []) else: # Rings used to be in a top-level ring-specifications object # Support this mode until CP moves them to the config-data object # The rings were indexed by region, but this was never used, so just # pull off first item. if len(ring_model) > 0: rings = ring_model[0].get('rings') storage_policies = [] for ring in rings: if ring.get('name').startswith('object-'): index = ring.get('name')[7:] name = ring.get('display_name') aliases = ring.get('aliases', []) aliases_csv = ','.join(aliases) if 'erasure_coding_policy' in ring: ec_type = ring.get('erasure_coding_policy').get('ec_type') ec_data = ring.get('erasure_coding_policy').get( 'ec_num_data_fragments') ec_parity = ring.get('erasure_coding_policy').get( 'ec_num_parity_fragments') ec_seg_size = ring.get('erasure_coding_policy').get( 'ec_object_segment_size', '1048576') policy = {'policy': {'index': index, 'name': name, 'aliases_csv': aliases_csv, 'ec_type': ec_type, 'ec_data': ec_data, 'ec_parity': ec_parity, 'ec_seg_size': ec_seg_size, 'default': 'no'}} else: policy = {'policy': {'index': index, 'name': name, 'aliases_csv': aliases_csv, 'default': 'no'}} if ring.get('default', False): policy['policy']['default'] = 'yes' storage_policies.append(policy) return storage_policies def main(): ringspecs = '' region_name = '' try: args_file = sys.argv[1] args_data = file(args_file).read() arguments = shlex.split(args_data) except (IndexError, IOError): arguments = sys.argv # Running interactively for arg in arguments: if "=" in arg: (key, value) = arg.split('=') if key == 'ring-specifications': ringspecs = value ringspecs = ringspecs.replace("'", '"') # fix single quotes ringspecs = ringspecs.replace('True', 'true') # fix boolean ringspecs = ringspecs.replace('False', 'false') # fix boolean storage_policies = get_storage_policies(json.loads(ringspecs)) ret = {} ret['failed'] = False ret['rc'] = 0 ret['ansible_facts'] = {'storage_policies': storage_policies} print(json.dumps(ret)) if __name__ == '__main__': main() 070701000000A9000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000003C00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/_SWF-CMN/meta070701000000AA000081A40000000000000000000000015C7A0D8A00000263000000000000000000000000000000000000004500000000ardana-swift-8.0+git.1551502730.f4d219d/roles/_SWF-CMN/meta/main.yml# (c) Copyright 2018 SUSE LLC # # 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. # --- dependencies: - role: tls-vars 070701000000AB000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000003D00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/_SWF-CMN/tasks070701000000AC000081A40000000000000000000000015C7A0D8A0000043F000000000000000000000000000000000000005000000000ardana-swift-8.0+git.1551502730.f4d219d/roles/_SWF-CMN/tasks/_check_restart.yml# # (c) Copyright 2018 SUSE LLC # # 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. # --- # Trigger a global service restart if the special # ardana_notify_swift_restart_required variable was set - name: _SWF_CMN | _check_restart | Check restart notification debug: msg: "Trigger swift services to restart" changed_when: true when: ardana_notify_swift_restart_required is defined and ardana_notify_swift_restart_required.changed notify: - swift_config_change - name: _SWF_CMN | _check_restart | Ensure handlers are executed right away become: yes meta: flush_handlers 070701000000AD000081A40000000000000000000000015C7A0D8A000003EA000000000000000000000000000000000000005300000000ardana-swift-8.0+git.1551502730.f4d219d/roles/_SWF-CMN/tasks/_schedule_restart.yml# # (c) Copyright 2018 SUSE LLC # # 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. # --- - name: _SWF-CMN | _schedule_restart | Schedule a restart for all services debug: msg: "Trigger a change notification in swift" changed_when: true register: ardana_notify_swift_restart_required - name: _SWF-CMN | _schedule_restart | Schedule a restart for rsyslog debug: msg: "Trigger a change notification for rsyslog" changed_when: true register: ardana_notify_swift_common_rsyslog_restart_required 070701000000AE000081A40000000000000000000000015C7A0D8A000003BD000000000000000000000000000000000000005100000000ardana-swift-8.0+git.1551502730.f4d219d/roles/_SWF-CMN/tasks/_service_status.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: _SWF_CMN | status | Check systemd service running command: systemctl status "{{ item.key }}" changed_when: false when: (ardana_pre_upgrade_check is defined and item.value.post_upgrade is not defined) or (ardana_pre_upgrade_check is not defined) with_dict: "{{ swift_component }}_services" 070701000000AF000081A40000000000000000000000015C7A0D8A00000B35000000000000000000000000000000000000004B00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/_SWF-CMN/tasks/configure.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: SWF-ACC | configure | Set max worker count to 8 if dynamic CPU based count is greater than {{ swift_max_workers }} set_fact: swift_worker_count: "{{ swift_max_workers }}" when: swift_worker_count > swift_max_workers - name: _SWF_CMN | configure | Create swift_dir directory file: path: "{{ swift_dir }}" owner: "{{ swift_user }}" group: "{{ swift_group }}" mode: 0755 state: directory - name: _SWF_CMN | configure | Create swift_logs_dir directory file: path: "{{ swift_logs_dir }}" owner: root group: adm mode: 0755 state: directory - name: _SWF_CMN | configure | Create recon_cache_path directory file: path: "{{ recon_cache_path }}" owner: swift group: swift mode: 0755 state: directory - name: _SWF_CMN | configure | Create swift_facts_dir directory file: path: "{{ swift_facts_dir }}" owner: root group: root mode: 0755 state: directory - name: _SWF_CMN | configure | Copy /etc/rsyslog.d/40-swift.conf template: src: 40-swift.conf.j2 dest: /etc/rsyslog.d/40-swift.conf owner: root group: root mode: 0644 register: ardana_notify_swift_common_rsyslog_restart_required - name: _SWF_CMN | configure | Create disk_models yml file template: src: disk_models.j2 dest: /etc/swift/disk_models.yml owner: swift group: swift mode: 0444 - name: _SWF_CMN | configure | Add drive-audit config file template: src: drive-audit.conf.j2 dest: "{{ swift_dir }}/drive-audit.conf" owner: "{{ swift_user }}" group: "{{ swift_group }}" mode: 0400 - name: _SWF_CMN | configure | Copy /etc/swift/memcache.conf template: src: memcache.conf.j2 dest: /etc/swift/memcache.conf owner: "{{ swift_user }}" group: "{{ swift_group }}" mode: 0400 notify: - swift_config_change - name: _SWF_CMN | configure | Create swiftlm_cache_path directory file: path: "{{ swiftlm_cache_path }}" owner: root group: root mode: 0755 state: directory - name: _SWF_CMN | configure | Copy /etc/cron.d/swiftlm-scan template: src: swiftlm-scan.j2 dest: /etc/cron.d/swiftlm-scan owner: root group: root mode: 0644 070701000000B0000081A40000000000000000000000015C7A0D8A000002FA000000000000000000000000000000000000005B00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/_SWF-CMN/tasks/get_storage_policies_fact.yml# # (c) Copyright 2015,2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: _SWF-CMN | get storage_policies fact storage_policies: ring-specifications="{{ ring_specifications }}" 070701000000B1000081A40000000000000000000000015C7A0D8A00000F37000000000000000000000000000000000000004900000000ardana-swift-8.0+git.1551502730.f4d219d/roles/_SWF-CMN/tasks/install.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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. # --- - name: _SWF_CMN | install | Add group {{ swift_group }} become: yes group: name: "{{ swift_group }}" gid: "{{ swift_gid }}" - name: _SWF_CMN | install | Add user {{ swift_user }} become: yes user: name: "{{ swift_user }}" uid: "{{ swift_uid }}" group: "{{ swift_group }}" createhome: "{{ swift_createhome }}" shell: "{{ swift_shell }}" - name: _SWF_CMN | install | Set Permissions {{ swift_createhome }} become: yes file: path: "/home/swift" state: directory mode: 0750 when: swift_createhome # The swift-common service is created simply as a convenience for # creating symlinks from /usr/local/bin to the swift scripts in # /opt/stack/service/swift-common/venv/bin # As such there is no need to postpone activation, register a systemd service # or restart any services. - name: _SWF_CMN | install | Install Swift swift-common service install_package: name: swift service: swift-common state: present - name: _SWF_CMN | install | Install Prerequisites become: yes package: name: "{{ item }}" state: present with_items: swift_packages # The swiftlm is not a service that needs to be started. # There is no need to postpone activation, register a systemd service # or restart any services. # Its sole purpose if to facilitate creating symlinks from /usr/local/bin # to the swiftlm scripts in /opt/stack/service/swiftlm/venv/bin - name: _SWF_CMN | install | Install swiftlm service (legacy) install_package: name: swiftlm service: swiftlm state: present when: deployer_media_legacy_layout|bool # We dont want to have to update in two locations for each new script so we # symlink all executables that exist in the bin dir's. - name: _SWF_CMN | install | Get swift-common files for symlinking (legacy) command: "find {{ 'swift-common' | bin_dir() }} -maxdepth 1 -type f -executable -name \"swift*\"" register: swift_common_symlink_targets when: deployer_media_legacy_layout|bool - name: _SWF_CMN | install | Get swiftlm files for symlinking command: "find {{ 'swiftlm' | bin_dir() }} -maxdepth 1 -type f -executable -name \"swift*\"" register: swiftlm_symlink_targets when: deployer_media_legacy_layout|bool - name: _SWF_CMN | install | Create symlinks to binaries (legacy) file: src: "{{ item }}" dest: "/usr/local/bin/{{ item | basename }}" owner: root group: root state: link with_items: - "{{ swift_common_symlink_targets.stdout_lines }}" - "{{ swiftlm_symlink_targets.stdout_lines }}" when: deployer_media_legacy_layout|bool - name: _SWF_CMN | install | Install swiftlm service (rpm) package: name: python-swiftlm state: present become: yes when: deployer_media_legacy_layout|bool == false - name: _SWF-CMN | install | Comment contents of default log rotation script become: yes shell: sed -i -e 's/^/#/' $(grep -lv "#" /etc/logrotate.d/openstack-swift) failed_when: false # Swiftlm expects parted binaries to be in /sbin - name: _SWF_CMN | install | Suse - create symlink for parted become: yes file: src: /usr/sbin/{{ item }} dest: /sbin/{{ item }} state: link with_items: - parted - partprobe when: ansible_os_family == 'Suse' 070701000000B2000081A40000000000000000000000015C7A0D8A000002EE000000000000000000000000000000000000004600000000ardana-swift-8.0+git.1551502730.f4d219d/roles/_SWF-CMN/tasks/main.yml# # (c) Copyright 2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: _SWF_CMN | main | Set os-specific variables include_vars: "{{ ansible_os_family | lower }}.yml" 070701000000B3000081A40000000000000000000000015C7A0D8A00000403000000000000000000000000000000000000005300000000ardana-swift-8.0+git.1551502730.f4d219d/roles/_SWF-CMN/tasks/provision_storage.yml# # (c) Copyright 2015,2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: _SWF_CMN | provision_storage | Create partitions and file systems command: swiftlm-drive-provision -p become: yes - name: _SWF_CMN | provision_storage | Create partition and file system labels command: swiftlm-drive-provision -l become: yes - name: _SWF_CMN | provision_storage | Mount file systems by label command: swiftlm-drive-provision -m become: yes 070701000000B4000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004100000000ardana-swift-8.0+git.1551502730.f4d219d/roles/_SWF-CMN/templates070701000000B5000081A40000000000000000000000015C7A0D8A00000D9D000000000000000000000000000000000000005200000000ardana-swift-8.0+git.1551502730.f4d219d/roles/_SWF-CMN/templates/40-swift.conf.j2{# # # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # #} template(name="swift_json" type="list" option.json="on") { constant(value="{") constant(value="\"tags\": \"") property(name="programname") constant(value="\", \"color\": \"") constant(value="\", \"@timestamp\": \"") property(name="timereported" dateFormat="rfc3339") constant(value="\", \"@version\": 1") constant(value=", \"version\": \"unknown") constant(value="\", \"user_identity\": null") constant(value=", \"project\": \"unknown") constant(value="\", \"instance\": \"") constant(value="\", \"host\": \"") property(name="hostname") constant(value="\", \"logger\": \"swift.wsgi.server") constant(value="\", \"type\": \"swift") constant(value="\", \"message\": \"") property(name="msg") constant(value="\", \"levelname\": \"") property(name="syslogseverity-text" CaseConversion="upper") constant(value="\"}\n") } :programname, contains, "swiftlm-uptime" action(type="omfile" fileCreateMode="0640" FileGroup="adm" file="/var/log/swiftlm/uptime-mon-json.log" template="swift_json") :programname, contains, "swiftlm-uptime" /var/log/swiftlm/uptime-mon.log & stop # Generate json audit log for centralised logging. It is not required to create non json log file. # Note also, the logfile name should not include the text json. :msg, contains, "Event type: audit.http" action(type="omfile" fileCreateMode="0640" FileGroup="adm" file="{{ swift_audit_log_file }}" template="swift_json") & stop :programname, contains, "swift" action(type="omfile" fileCreateMode="0640" FileGroup="adm" file="{{ swift_logs_dir }}/swift-json.log" template="swift_json") :programname, contains, "account" action(type="omfile" fileCreateMode="0640" FileGroup="adm" file="{{ swift_logs_dir }}/swift-json.log" template="swift_json") :programname, contains, "container" action(type="omfile" fileCreateMode="0640" FileGroup="adm" file="{{ swift_logs_dir }}/swift-json.log" template="swift_json") :programname, contains, "object" action(type="omfile" fileCreateMode="0640" FileGroup="adm" file="{{ swift_logs_dir }}/swift-json.log" template="swift_json") :programname, contains, "proxy-server" action(type="omfile" fileCreateMode="0640" FileGroup="adm" file="{{ swift_logs_dir }}/swift-json.log" template="swift_json") # The "& stop" is included after each of the following swift rules to ensure # that the msg is discarded after being written to the swift log. As a # result it does not get logged to other logs such as /var/log/syslog. :programname, contains, "swift" {{ swift_logs_dir }}/swift.log & stop :programname, contains, "account" {{ swift_logs_dir }}/swift.log & stop :programname, contains, "container" {{ swift_logs_dir }}/swift.log & stop :programname, contains, "object" {{ swift_logs_dir }}/swift.log & stop :programname, contains, "proxy-server" {{ swift_logs_dir }}/swift.log & stop 070701000000B6000081A40000000000000000000000015C7A0D8A000002AE000000000000000000000000000000000000005000000000ardana-swift-8.0+git.1551502730.f4d219d/roles/_SWF-CMN/templates/disk_models.j2{# # # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # #} {{ host.my_disk_models | to_nice_yaml }} 070701000000B7000081A40000000000000000000000015C7A0D8A000003C0000000000000000000000000000000000000005500000000ardana-swift-8.0+git.1551502730.f4d219d/roles/_SWF-CMN/templates/drive-audit.conf.j2{# # # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # #} [drive-audit] device_dir = {{ swift_devices }} log_facility = LOG_LOCAL0 log_level = DEBUG minutes = 240 error_limit = 1 unmount_failed_device = False log_to_console = True regex_pattern1 = \berror\b.*\b(sd[a-z]){1,2}\d?\b regex_pattern2 = \b(sd[a-z]){1,2}\d?\b.*\berror\b recon_cache_path = {{ recon_cache_path }} 070701000000B8000081A40000000000000000000000015C7A0D8A000003BB000000000000000000000000000000000000005200000000ardana-swift-8.0+git.1551502730.f4d219d/roles/_SWF-CMN/templates/memcache.conf.j2{# # # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # #} # This file has the Ardana OpenStack values that apply only to the Swift # service. # You may make changes to this file by adding sections/options below. [memcache] memcache_servers = {% for item in memcache_servers -%} {{ item.host }}:{{ item.port }}{% if loop.revindex > 1 %},{% endif %} {%- endfor %} 070701000000B9000081A40000000000000000000000015C7A0D8A00000645000000000000000000000000000000000000004F00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/_SWF-CMN/templates/swift.conf.j2{# # # (c) Copyright 2015,2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # #} # This file has the Ardana OpenStack values that apply only to the Swift # service. # You may make changes to this file by adding sections/options below. [swift-hash] swift_hash_path_suffix = {{ swift_hash_path_suffix }} swift_hash_path_prefix = {{ swift_hash_path_prefix }} # Storage Policies {% if storage_policies is defined %} {% for policy in storage_policies %} [storage-policy:{{ policy.policy.index }}] name = {{ policy.policy.name }} aliases = {{ policy.policy.aliases_csv }} {% if policy.policy.default is defined %} default = {{ policy.policy.default }} {% endif %} {% if policy.policy.ec_type is defined %} policy_type = erasure_coding ec_type = {{ policy.policy.ec_type }} ec_num_data_fragments = {{ policy.policy.ec_data }} ec_num_parity_fragments = {{ policy.policy.ec_parity }} ec_object_segment_size = {{ policy.policy.ec_seg_size }} {% endif %} {% endfor %} {% endif %} ## Do NOT put anything after this line ## 070701000000BA000081A40000000000000000000000015C7A0D8A00000341000000000000000000000000000000000000005100000000ardana-swift-8.0+git.1551502730.f4d219d/roles/_SWF-CMN/templates/swiftlm-scan.j2{# # # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # #} # Cronjob to run swiftlm-scan SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin MAILTO="" */1 * * * * root swiftlm-scan --filename {{ swiftlm_scan_metrics }} 070701000000BB000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000003C00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/_SWF-CMN/vars070701000000BC000081A40000000000000000000000015C7A0D8A000002F9000000000000000000000000000000000000004700000000ardana-swift-8.0+git.1551502730.f4d219d/roles/_SWF-CMN/vars/debian.yml# # (c) Copyright 2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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. # --- swift_packages: - xfsprogs - parted - ssacli - liberasurecode-dev - libgf-complete1 - libjerasure2 070701000000BD000081A40000000000000000000000015C7A0D8A00000338000000000000000000000000000000000000004500000000ardana-swift-8.0+git.1551502730.f4d219d/roles/_SWF-CMN/vars/suse.yml# # (c) Copyright 2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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. # --- swift_packages: # - hpssacli - liberasurecode1 # - libgf-complete1 # - libjerasure2 - logrotate - memcached - parted - python-netifaces - rsync - xfsprogs 070701000000BE000041ED0000000000000000000000085C7A0D8A00000000000000000000000000000000000000000000003700000000ardana-swift-8.0+git.1551502730.f4d219d/roles/_SWF-RSY070701000000BF000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004000000000ardana-swift-8.0+git.1551502730.f4d219d/roles/_SWF-RSY/defaults070701000000C0000081A40000000000000000000000015C7A0D8A000002CB000000000000000000000000000000000000004900000000ardana-swift-8.0+git.1551502730.f4d219d/roles/_SWF-RSY/defaults/main.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- # Flag to track restart requirement swift_rsync_restart_required: false 070701000000C1000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004000000000ardana-swift-8.0+git.1551502730.f4d219d/roles/_SWF-RSY/handlers070701000000C2000081A40000000000000000000000015C7A0D8A000002CE000000000000000000000000000000000000004900000000ardana-swift-8.0+git.1551502730.f4d219d/roles/_SWF-RSY/handlers/main.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: Restart rsyncd set_fact: swift_rsync_restart_required: true 070701000000C3000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000003C00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/_SWF-RSY/meta070701000000C4000081A40000000000000000000000015C7A0D8A000002C6000000000000000000000000000000000000004500000000ardana-swift-8.0+git.1551502730.f4d219d/roles/_SWF-RSY/meta/main.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- dependencies: - role: _SWF-CMN - role: swiftlm-ring-supervisor 070701000000C5000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000003D00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/_SWF-RSY/tasks070701000000C6000081A40000000000000000000000015C7A0D8A00000433000000000000000000000000000000000000005000000000ardana-swift-8.0+git.1551502730.f4d219d/roles/_SWF-RSY/tasks/_check_restart.yml# # (c) Copyright 2018 SUSE LLC # # 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. # --- # Trigger a service restart if the special # ardana_notify_swift_restart_required variable was set - name: _SWF-RSY | _check_restart | Check restart notification debug: msg: "Trigger rsyncd service to restart" changed_when: true when: ardana_notify_swift_restart_required is defined and ardana_notify_swift_restart_required.changed notify: - Restart rsyncd - name: _SWF_RSY | _check_restart | Ensure handlers are executed right away become: yes meta: flush_handlers 070701000000C7000081A40000000000000000000000015C7A0D8A00000595000000000000000000000000000000000000004B00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/_SWF-RSY/tasks/configure.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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. # --- - include_vars: "{{ ansible_os_family | lower }}.yml" - name: _SWF-RSY | configure | Copy /etc/rsyncd.conf template: src: rsyncd.conf.j2 dest: /etc/rsyncd.conf owner: root group: root mode: 0644 notify: - Restart rsyncd - name: _SWF-RSY | configure | Debian - Enable rsync in defaults file lineinfile: dest: /etc/default/rsync state: present regexp: '^RSYNC_ENABLE(.*)=(.*)false' line: 'RSYNC_ENABLE=true' when: ansible_os_family == 'Debian' # With 'enable' SLES systemctl fails, claiming 'Too many levels of symbolic # links', if service is already enabled. Using reenable as workaround. - name: _SWF-RSY | configure | Enable the rsync service to start on boot command: systemctl reenable "{{ swift_rsync_service_name }}" 070701000000C8000081A40000000000000000000000015C7A0D8A00000445000000000000000000000000000000000000004700000000ardana-swift-8.0+git.1551502730.f4d219d/roles/_SWF-RSY/tasks/start.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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. # --- - include: _check_restart.yml - include_vars: "{{ ansible_os_family | lower }}.yml" - name: _SWF-RSY | start | Restart rsyncd service: name: "{{ swift_rsync_service_name }}" state: restarted when: swift_rsync_restart_required - set_fact: swift_rsync_restart_required: false when: swift_rsync_restart_required - name: _SWF-RSY | start | Start rsyncd service: name: "{{ swift_rsync_service_name }}" state: started 070701000000C9000081A40000000000000000000000015C7A0D8A000002D8000000000000000000000000000000000000004600000000ardana-swift-8.0+git.1551502730.f4d219d/roles/_SWF-RSY/tasks/stop.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: _SWF-RSY | stop | Stop rsyncd service: name: rsync state: stopped 070701000000CA000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004100000000ardana-swift-8.0+git.1551502730.f4d219d/roles/_SWF-RSY/templates070701000000CB000081A40000000000000000000000015C7A0D8A000005A2000000000000000000000000000000000000005000000000ardana-swift-8.0+git.1551502730.f4d219d/roles/_SWF-RSY/templates/rsyncd.conf.j2{# # # (c) Copyright 2015,2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # #} # This file has the Ardana OpenStack values that apply only to the Swift # service. # You may make changes to this file by adding sections/options below. uid = {{ swift_user }} gid = {{ swift_group }} log file = /var/log/rsyncd.log pid file = /var/run/rsyncd.pid address = {{ rsync_bind_ip }} port = {{ rsync_bind_port }} [rings] path = {{ swiftlm_etc }}/{{ this_swift_instance }}/builder_dir read only = false [account] max connections = 2 path = {{ swift_devices }} read only = false lock file = /var/lock/account.lock [container] max connections = 4 path = {{ swift_devices }} read only = false lock file = /var/lock/container.lock [object] max connections = 8 path = {{ swift_devices }} read only = false lock file = /var/lock/object.lock ## Do NOT put anything after this line ## 070701000000CC000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000003C00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/_SWF-RSY/vars070701000000CD000081A40000000000000000000000015C7A0D8A0000028C000000000000000000000000000000000000004700000000ardana-swift-8.0+git.1551502730.f4d219d/roles/_SWF-RSY/vars/debian.yml# # (c) Copyright 2018 SUSE LLC # # 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. # --- # systemd service name for rsync daemon swift_rsync_service_name: rsync 070701000000CE000081A40000000000000000000000015C7A0D8A0000028D000000000000000000000000000000000000004500000000ardana-swift-8.0+git.1551502730.f4d219d/roles/_SWF-RSY/vars/suse.yml# # (c) Copyright 2018 SUSE LLC # # 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. # --- # systemd service name for rsync daemon swift_rsync_service_name: rsyncd 070701000000CF000041ED0000000000000000000000065C7A0D8A00000000000000000000000000000000000000000000003C00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/access-tailer070701000000D0000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004500000000ardana-swift-8.0+git.1551502730.f4d219d/roles/access-tailer/defaults070701000000D1000081A40000000000000000000000015C7A0D8A000002F9000000000000000000000000000000000000004E00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/access-tailer/defaults/main.yml# # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- access_log_tailer_restart_required: false access_tailer_metrics: "{{ swiftlm_cache_path }}/access_log_metrics.json" 070701000000D2000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004500000000ardana-swift-8.0+git.1551502730.f4d219d/roles/access-tailer/handlers070701000000D3000081A40000000000000000000000015C7A0D8A000002DD000000000000000000000000000000000000004E00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/access-tailer/handlers/main.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: access_log_tailer_change set_fact: access_log_tailer_restart_required: true070701000000D4000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004200000000ardana-swift-8.0+git.1551502730.f4d219d/roles/access-tailer/tasks070701000000D5000081A40000000000000000000000015C7A0D8A00000452000000000000000000000000000000000000005500000000ardana-swift-8.0+git.1551502730.f4d219d/roles/access-tailer/tasks/_check_restart.yml# # (c) Copyright 2018 SUSE LLC # # 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. # --- # Trigger a service restart if the special # ardana_notify_swift_restart_required variable was set - name: access-tailer | _check_restart | Check restart notification debug: msg: "Trigger swiftlm-access-log-tailer to restart" changed_when: true when: ardana_notify_swift_restart_required is defined and ardana_notify_swift_restart_required.changed notify: - access_log_tailer_change - name: access-tailer | _check_restart | Ensure handlers are executed right away become: yes meta: flush_handlers 070701000000D6000081A40000000000000000000000015C7A0D8A0000039F000000000000000000000000000000000000005000000000ardana-swift-8.0+git.1551502730.f4d219d/roles/access-tailer/tasks/configure.yml# # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: access-tailer | configure | Make access log tailer config template: src: access-log-tailer.conf.j2 dest: "{{ swiftlm_dir }}/access-log-tailer.conf" owner: "{{ swift_user }}" group: "{{ swift_group }}" mode: 0400 notify: - access_log_tailer_change 070701000000D7000081A40000000000000000000000015C7A0D8A00000654000000000000000000000000000000000000005500000000ardana-swift-8.0+git.1551502730.f4d219d/roles/access-tailer/tasks/install-legacy.yml# # (c) Copyright 2016-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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. # --- - name: access-tailer | install | Update venv cache (legacy) become: yes install_package: cache: update - name: access-tailer | install | Install access tailer package (legacy) install_package: name: "swiftlm" service: "swiftlm-access-log-tailer" state: "present" activate: "act_off" register: access_log_tailer_venv_result notify: access_log_tailer_change - name: access-tailer | install | Register access tailer (legacy) setup_systemd: service: "swiftlm-access-log-tailer" cmd: "swiftlm-log-tailer" user: root group: root args: "--config {{ swiftlm_dir }}/access-log-tailer.conf" when: access_log_tailer_venv_result.changed # With 'enable' SLES systemctl fails, claiming 'Too many levels of symbolic # links', if service is already enabled. Using reenable as workaround. - name: access-tailer | install | Enable access tailer to start on boot (legacy) command: systemctl reenable swiftlm-access-log-tailer 070701000000D8000081A40000000000000000000000015C7A0D8A000004B4000000000000000000000000000000000000004E00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/access-tailer/tasks/install.yml# # (c) Copyright 2016-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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. # --- - name: access-tailer | install | Install access tailer (legacy) include: install-legacy.yml when: deployer_media_legacy_layout|bool - name: access-tailer | install | Install access tailer (rpm) become: yes package: name: ardana-swiftlm-log-tailer state: present when: deployer_media_legacy_layout|bool == false - name: access-tailer | install | Enable access tailer service (rpm) command: systemctl reenable swiftlm-log-tailer become: yes notify: access_log_tailer_change when: deployer_media_legacy_layout|bool == false 070701000000D9000081A40000000000000000000000015C7A0D8A00000502000000000000000000000000000000000000004C00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/access-tailer/tasks/start.yml# # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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. # --- - include: _check_restart.yml - name: access-tailer | start | Activate the latest install install_package: name: "swiftlm" service: "swiftlm-access-log-tailer" activate: "act_on" version: "{{ access_log_tailer_venv_result.version }}" when: access_log_tailer_venv_result is defined and deployer_media_legacy_layout|bool - name: swift-monitor | start | Restart the access tailer service: name: swiftlm-access-log-tailer state: restarted when: access_log_tailer_restart_required - name: access-tailer | start | Start the access tailer service: name: swiftlm-access-log-tailer state: started 070701000000DA000081A40000000000000000000000015C7A0D8A00000301000000000000000000000000000000000000004B00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/access-tailer/tasks/stop.yml# # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: access-tailer | stop | Stop the access log tailer service: name: swiftlm-access-log-tailer state: stopped 070701000000DB000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004600000000ardana-swift-8.0+git.1551502730.f4d219d/roles/access-tailer/templates070701000000DC000081A40000000000000000000000015C7A0D8A00000381000000000000000000000000000000000000006000000000ardana-swift-8.0+git.1551502730.f4d219d/roles/access-tailer/templates/access-log-tailer.conf.j2{# # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # #} [log-tailer] tailed_log_file={{ swift_logs_dir }}/swift.log metric_file={{ access_tailer_metrics }} interval=60 monasca_agent_interval=30 reseller_prefixes=AUTH_ [logging] log_level = info log_facility = LOG_LOCAL0 log_format = '%(name)s: %(message)s' 070701000000DD000041ED0000000000000000000000065C7A0D8A00000000000000000000000000000000000000000000003F00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-dispersion070701000000DE000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004800000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-dispersion/defaults070701000000DF000081A40000000000000000000000015C7A0D8A000002E2000000000000000000000000000000000000005100000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-dispersion/defaults/main.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- endpoint_type: internalURL disp_auth_version: 3.0 swift_dispersion_conf_dir: "{{ swift_dir }}" 070701000000E0000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004400000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-dispersion/meta070701000000E1000081A40000000000000000000000015C7A0D8A000002A4000000000000000000000000000000000000004D00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-dispersion/meta/main.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- dependencies: - role: _SWF-CMN 070701000000E2000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004500000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-dispersion/tasks070701000000E3000081A40000000000000000000000015C7A0D8A0000057E000000000000000000000000000000000000005300000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-dispersion/tasks/configure.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - include: ../../_SWF-CMN/tasks/configure.yml - name: swift-dispersion | configure | Copy /etc/swift/dispersion.conf template: src: dispersion.conf.j2 dest: "{{ swift_dispersion_conf_dir }}/dispersion.conf" owner: "{{ swift_user }}" group: "{{ swift_group }}" mode: 0400 - name: swift-dispersion | configure | Create file /var/cache/swift/dispersion-report file: path: "{{ recon_cache_path }}/dispersion-report" state: touch owner: "{{ swift_user }}" group: "{{ swift_group }}" mode: 0755 - name: swift-dispersion | configure | Create file /etc/cron.d/dispersion-report-cron template: src: dispersion-report-cron.j2 dest: "/etc/cron.d/dispersion-report-cron" owner: root group: root mode: 0755 070701000000E4000081A40000000000000000000000015C7A0D8A000005AE000000000000000000000000000000000000005200000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-dispersion/tasks/populate.yml# # (c) Copyright 2015,2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: swift-dispersion | populate | Run swift-dispersion-populate command: > swift-dispersion-populate {{ swift_dispersion_conf_dir }}/dispersion.conf --policy-name={{ item.policy.name }} become: yes register: dispersion_populate_result with_items: "{{ storage_policies }}" - name: swift-dispersion | populate | Save dispersion populate results set_fact: output= "{{ item }}" register: output_result no_log: True with_items: "{{ dispersion_populate_result.results }}" - name: swift-dispersion | populate | Get dispersion populate results set_fact: > dispersion_populate_results="{{ output_result.results | map(attribute='item.stdout_lines') | list }}" - name: swift-dispersion | populate | Display dispersion populate result debug: var=dispersion_populate_results 070701000000E5000081A40000000000000000000000015C7A0D8A000006D3000000000000000000000000000000000000005000000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-dispersion/tasks/report.yml# # (c) Copyright 2015,2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: swift-dispersion | report | Run swift-dispersion-report command: swift-dispersion-report --policy-name={{ item.policy.name }} become: yes register: dispersion_report_result with_items: "{{ storage_policies }}" - name: swift-dispersion | report | Save dispersion report results set_fact: output= "{{ item }}" register: output_result no_log: True with_items: "{{ dispersion_report_result.results }}" - name: swift-dispersion | report | Check if populate has been run set_fact: run_populate=True no_log: True with_items: "{{ dispersion_report_result.results }}" when: "'swift-dispersion-populate' in item.stderr" - name: swift-dispersion | report | Get dispersion report results set_fact: > dispersion_report_results="{{ output_result.results | map(attribute='item.stdout_lines') | list }}" - name: swift-dispersion | report | Display dispersion report results debug: var=dispersion_report_results - name: swift-dispersion | report | Warn when populate not yet run debug: msg="Please run swift-dispersion-populate.yml" when: run_populate is defined 070701000000E6000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004900000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-dispersion/templates070701000000E7000081A40000000000000000000000015C7A0D8A00000381000000000000000000000000000000000000006300000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-dispersion/templates/dispersion-report-cron.j2{# # # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # #} # Cronjob that runs dispersion report every 2 hours SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin MAILTO="" 0 */2 * * * {{ swift_user }} /usr/local/bin/swift-dispersion-report > /var/cache/swift/dispersion-report 2>&1 070701000000E8000081A40000000000000000000000015C7A0D8A0000045F000000000000000000000000000000000000005C00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-dispersion/templates/dispersion.conf.j2{# # # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # #} [dispersion] auth_url = {{ keystone_auth_url }}/v3 auth_user = {{ swift_dispersion_tenant }}:{{ swift_dispersion_user }} auth_key = {{ swift_dispersion_password }} endpoint_type = {{ endpoint_type }} auth_version = {{ disp_auth_version }} # Set this to the percentage coverage. We recommend a value # of 1%. You can increase this to get more coverage. However, if you # decrease the value, the dispersion containers and objects are # not deleted. dispersion_coverage = 1.0 070701000000E9000041ED0000000000000000000000075C7A0D8A00000000000000000000000000000000000000000000003F00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-functional070701000000EA000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004800000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-functional/defaults070701000000EB000081A40000000000000000000000015C7A0D8A00000700000000000000000000000000000000000000005100000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-functional/defaults/main.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- swift_functional_test_non_operator_role: swf_func_non_operator_role swift_functional_test_users: swf_func_tester: project_name: swf_func_test password: testing domain: "{{ keystone_user_domain_name }}" role: admin swf_func_tester2: project_name: swf_func_test2 password: testing2 domain: "{{ keystone_user_domain_name }}" role: admin swf_func_tester3: project_name: swf_func_test password: testing3 domain: "{{ keystone_user_domain_name }}" role: "{{ swift_functional_test_non_operator_role }}" # Do not have multiple domains so tester4 not needed # swf_func_tester4: # project_name: swf_func_test4 # password: testing4 # domain: swf_func_non_default_domain # role: admin # Do not have multiple resellers so tester5 not needed # swf_func_tester5: # project_name: swf_func_test5 # password: testing5 # domain: "{{ keystone_user_domain_name }}" # role: service auth_url: "{{ KEY_API.advertises.vips.public[0].url }}" auth_ip: "{{ KEY_API.advertises.vips.public[0].ip_address }}" 070701000000EC000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004700000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-functional/library070701000000ED000081ED0000000000000000000000015C7A0D8A0000061B000000000000000000000000000000000000005400000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-functional/library/urlparser.py#!/usr/bin/python # # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # import json import shlex import sys from urlparse import urlparse def main(): url = '' factname ='urlparse_result' try: args_file = sys.argv[1] args_data = file(args_file).read() arguments = shlex.split(args_data) except (IndexError, IOError): arguments = sys.argv # Running interactively for arg in arguments: if "=" in arg: (key, value) = arg.split('=') if key == 'url': url = value elif key == 'factname': factname = value result = urlparse(url) ret = {} ret['failed'] = False ret['rc'] = 0 ret['ansible_facts'] = {factname: {'scheme': result.scheme, 'hostname': result.hostname, 'port': result.port}} print(json.dumps(ret)) if __name__ == '__main__': main() 070701000000EE000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004400000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-functional/meta070701000000EF000081A40000000000000000000000015C7A0D8A000002C3000000000000000000000000000000000000004D00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-functional/meta/main.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- dependencies: - role: swift-post-configure - role: _SWF-CMN 070701000000F0000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004500000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-functional/tasks070701000000F1000081A40000000000000000000000015C7A0D8A00000425000000000000000000000000000000000000005300000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-functional/tasks/configure.yml# (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: swift-functional | configure | Get AUTH details urlparser: url: "{{ auth_url }}" factname: "auth" - name: swift-functional | configure | Create a test.conf file template: src: test.conf.j2 dest: "/tmp/test.conf" mode: 0400 - name: swift-functional | configure | Create a osrc file template: src: swift_functional.osrc.j2 dest: "/tmp/swift_functional.osrc" mode: 0400 070701000000F2000081A40000000000000000000000015C7A0D8A00000AB8000000000000000000000000000000000000005600000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-functional/tasks/make-testers.yml# (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: swift-functional | configure | Get a domain scoped token keystone_v3: endpoint: "{{ keystone_admin_endpoint }}/v3" login_username: "{{ keystone_admin_user }}" login_password: "{{ keystone_admin_password }}" login_user_domain_name: "Default" login_domain_name: "Default" action: "token_get" register: domain_scoped_token - name: swift-functional | configure | Create functional test non-member role keystone_v3: login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "create_role" role_name: "{{ swift_functional_test_non_operator_role }}" description: "Swift functional test non-member role" run_once: true - name: swift-functional | configure | Create functional test projects keystone_v3: login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "create_project" project_name: "{{ item.value.project_name }}" project_domain_name: "{{ item.value.domain }}" description: "Project used by Swift functional tests" run_once: true with_dict: "{{ swift_functional_test_users }}" - name: swift-functional | configure | Create functional test users keystone_v3: login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "create_user" user_name: "{{ item.key }}" user_password: "{{item.value.password }}" description: "Swift functional test user" user_domain_name: "{{ item.value.domain }}" run_once: true with_dict: "{{ swift_functional_test_users }}" - name: swift-functional | configure | Assign roles to users keystone_v3: login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "grant_project_role" user_name: "{{ item.key }}" project_name: "{{ item.value.project_name }}" role_name: "{{ item.value.role }}" user_domain_name: "{{ item.value.domain }}" project_domain_name: "{{ item.value.domain }}" run_once: true with_dict: "{{ swift_functional_test_users }}" 070701000000F3000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004900000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-functional/templates070701000000F4000081A40000000000000000000000015C7A0D8A000005E4000000000000000000000000000000000000006200000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-functional/templates/swift_functional.osrc.j2{# # # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # #} export OS_AUTH_VERSION=3 export OS_AUTH_URL=https://{{ auth_ip }}:{{ auth.port }}/v3 export no_proxy=$no_proxy,{{ auth_ip }},{{ auth.hostname }} echo "{{ auth_ip }} {{ auth.hostname }}" | sudo tee -a /etc/hosts # Pick user... export OS_USERNAME=swf_func_tester export OS_PASSWORD={{ swift_functional_test_users.swf_func_tester.password }} export OS_PROJECT_NAME={{ swift_functional_test_users.swf_func_tester.project_name }} # Or... # export OS_USERNAME=swf_func_tester2 # export OS_PASSWORD={{ swift_functional_test_users.swf_func_tester2.password }} # export OS_PROJECT_NAME={{ swift_functional_test_users.swf_func_tester2.project_name }} # Or... # export OS_USERNAME=swf_func_tester3 # export OS_PASSWORD={{ swift_functional_test_users.swf_func_tester3.password }} # export OS_PROJECT_NAME={{ swift_functional_test_users.swf_func_tester3.project_name }} 070701000000F5000081A40000000000000000000000015C7A0D8A00000983000000000000000000000000000000000000005600000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-functional/templates/test.conf.j2{# # # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # #} # # Instructions: # # - Checkout swift repo on a test server # # - Copy this file to /tmp/test.conf # # - If you have SSL cert setup, edit the "insecure" option below # # - Test your general environment as follows: # # (a) Copy the /tmp/swift_functional.osrc to your test server # and run it (this edits /etc/hosts and rewrites no_proxy # environment variable) # # (b) Use swift CLI as follows. Remove the --insecure if you gave setup # SSL certs. # # swift --insecure stat -v # # You should expect it to show the account metadata. The -v means it # also prints the Swift endpoint and token. # # - In top level swift directory, run the following commands to run the # functional tests: # export PYTHONWARNINGS="ignore:A true SSLContext object is not available,ignore:Unverified HTTPS request is being made" # tox -e func # [func_test] # Functional tests do not support endpoint type -- hence # we use the external VIP for auth since we use the external # endpoint anyway. auth_host = {{ auth_ip }} # For /etc/hosts:- {{ auth_ip }} {{ auth.hostname }} {% if auth.scheme == "https" %} auth_ssl = yes {% else %} auth_ssl = no {% endif %} # Change this if using certs insecure = yes auth_version = 3 auth_port = 5000 auth_prefix = /v3/ account = {{ swift_functional_test_users.swf_func_tester.project_name }} username = swf_func_tester password = {{ swift_functional_test_users.swf_func_tester.password }} account2 = {{ swift_functional_test_users.swf_func_tester2.project_name }} username2 = swf_func_tester2 password2 = {{ swift_functional_test_users.swf_func_tester2.password }} username3 = swf_func_tester3 password3 = {{ swift_functional_test_users.swf_func_tester3.password }} collate = C [unit_test] fake_syslog = False 070701000000F6000041ED0000000000000000000000075C7A0D8A00000000000000000000000000000000000000000000003C00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-monitor070701000000F7000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004500000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-monitor/defaults070701000000F8000081A40000000000000000000000015C7A0D8A0000045F000000000000000000000000000000000000004E00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-monitor/defaults/main.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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. # --- keystone_url: "{{ keystone_auth_url }}/v3" keystone_user: "{{ KEY_API.vars.keystone_admin_user }}" keystone_password: "{{ KEY_API.vars.keystone_admin_pwd | quote }}" keystone_project: "{{ KEY_API.vars.keystone_admin_tenant }}" keystone_project_domain: "Default" keystone_user_domain: "Default" system_cacert_file: "{{ trusted_ca_bundle }}" monasca_alarm_definition_api_url: "{{ MON_AGN.consumes_MON_API.vips.private[0].url }}/v2.0" monasca_agent_user: monasca-agent 070701000000F9000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004100000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-monitor/meta070701000000FA000081A40000000000000000000000015C7A0D8A000002C5000000000000000000000000000000000000004A00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-monitor/meta/main.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- dependencies: - role: _SWF-CMN - role: swiftlm-uptime-monitor 070701000000FB000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004200000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-monitor/tasks070701000000FC000081A40000000000000000000000015C7A0D8A000008A0000000000000000000000000000000000000005500000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-monitor/tasks/monasca_agents.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: swift-monitor | monasca_agents | Allow sudo access to swiftlm-scan become: yes template: src: swiftlm-scan-users dest: /etc/sudoers.d/swiftlm-scan-users owner: root group: root mode: 0440 # Removing the swift monasca_agent_plugin in favour of the individual httpcheck # plugins for the swift proxy, account, container and object services. Also, # the swiftlm_scan plugin has a process check for all swift processes and so # it is used in favour of the swift monasca_agent_plugin. # The name value here is the name of Plugin class in the detect modules, not # the name of the module. - name: swift-monitor | monasca_agents | Run Monasca agent Swift detection plugin monasca_agent_plugin: name=swift state=absent - name: swift-monitor | monasca_agents | Run swiftlm custom detection plugin monasca_agent_plugin: name: "SwiftLMDetect" # args should be a space separated list and can include: # metrics_files=<comma-separated (no spaces) list of files from # which metrics will be read. # subcommands=<comma-separated (no spaces) list of subcommands with # which swiftlm-scan will be run. # suppress_ok=<comma-separated (no spaces) list of subcommands for # which swiftlm-scan will not report metrics with value # OK (0). args: > subcommands={{ swiftlm_check_subcommands }} suppress_ok={{ swiftlm_check_suppress_ok }} metrics_files={{ swiftlm_check_metrics_files }} ignore_errors: yes 070701000000FD000081A40000000000000000000000015C7A0D8A00002C5D000000000000000000000000000000000000005500000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-monitor/tasks/monasca_alarms.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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. # --- - name: swift-monitor | monasca-alarms | Setup default email notification method monasca_notification_method: name: "Default Email" type: 'EMAIL' address: "root@localhost" keystone_url: "{{ keystone_url }}" keystone_user: "{{ keystone_user }}" keystone_password: "{{ keystone_password | quote }}" keystone_project: "{{ keystone_project }}" keystone_project_domain: "{{ keystone_project_domain }}" keystone_user_domain: "{{ keystone_user_domain }}" keystone_verify: "{{ system_cacert_file }}" monasca_api_url: "{{ monasca_alarm_definition_api_url }}" overwrite: false register: default_notification run_once: true - name: swift-monitor | monasca_alarms | Create monasca alarm definitions run_once: true monasca_alarm_definition: name: "{{ item.name }}" description: "{{ item.description }}" severity: "{{ item.severity }}" expression: "{{ item.expression }}" match_by: "{{ item.match_by }}" keystone_url: "{{ keystone_url }}" keystone_user: "{{ keystone_user }}" keystone_password: "{{ keystone_password }}" keystone_project: "{{ keystone_project }}" keystone_project_domain: "{{ keystone_project_domain }}" keystone_user_domain: "{{ keystone_user_domain }}" keystone_verify: "{{ system_cacert_file }}" monasca_api_url: "{{ monasca_alarm_definition_api_url }}" ok_actions: - "{{ default_notification.notification_method_id }}" undetermined_actions: - "{{ default_notification.notification_method_id }}" alarm_actions: - "{{ default_notification.notification_method_id }}" with_items: - { name: "swiftlm-scan monitor", description: "Alarms if swiftlm-scan cannot execute a monitoring task", severity: "HIGH", expression: "swiftlm.swiftlm_check > 1", match_by: ["hostname"]} - { name: "Swift configuration file ownership", description: "Alarms if files/directories in /etc/swift are not owned by Swift.", severity: "HIGH", expression: "swiftlm.swift.file_ownership.config > 1", match_by: ["hostname"]} - { name: "Swift data filesystem ownership", description: "Alarms if files/directories in /srv/node are not owned by Swift.", severity: "HIGH", expression: "swiftlm.swift.file_ownership.data > 1", match_by: ["hostname"]} - { name: "Drive URE errors detected", description: "Alarms if swift-drive-audit reports a unrecoverable read error on a drive used by Swift", severity: "HIGH", expression: "swiftlm.swift.drive_audit > 1", match_by: ["hostname", "mount_point"]} - { name: "Swift service", description: "Alarms if a Swift process is not running.", severity: "HIGH", expression: "swiftlm.swift.swift_services > 1", match_by: ["hostname", "component"]} - { name: "Swift filesystem mount point status", description: "Alarms if a filesystem/drive used by Swift in not correctly mounted", severity: "HIGH", expression: "swiftlm.systems.check_mounts > 1", match_by: ["hostname", "mount"]} - { name: "Swift Keystone server connect", description: "Alarms if a socket cannot be opened to the Keystone service (used for token validation)", severity: "HIGH", expression: "swiftlm.systems.connectivity.connect_check > 1", match_by: ["url"]} - { name: "Swift memcached server connect", description: "Alarms if a socket cannot be opened to the specified memcached server", severity: "HIGH", expression: "swiftlm.systems.connectivity.memcache_check > 1", match_by: ["url"]} - { name: "Swift rsync server connect", description: "Alarms if a socket cannot be opened to the specified rsync server", severity: "HIGH", expression: "swiftlm.systems.connectivity.rsync_check > 1", match_by: ["url"]} - { name: "Swift rings checksum", description: "Alarms if the swift rings checksums do not match on all hosts", severity: "HIGH", expression: "swiftlm.md5sum.cp.check.ring_checksums > 1", match_by: ["control_plane", "cloud_name"]} - { name: "Swift account replicator last completed in 12 hours", description: "Alarms if a swift account replicator has not completed in 12 hours", severity: "MEDIUM", expression: "swiftlm.replication.cp.max.account_last > {{ 60 * 60 * 12 }}", match_by: ["control_plane", "cloud_name"]} - { name: "Swift container replicator last completed in 12 hours", description: "Alarms if a swift container replicator has not completed in 12 hours", severity: "MEDIUM", expression: "swiftlm.replication.cp.max.container_last > {{ 60 * 60 * 12 }}", match_by: ["control_plane", "cloud_name"]} - { name: "Swift object replicator last completed in 24 hours", description: "Alarms if a swift object replicator has not completed in 24 hours", severity: "MEDIUM", expression: "swiftlm.replication.cp.max.object_last > {{ 60 * 60 * 24 }}", match_by: ["control_plane", "cloud_name"]} # The following 2 alarms are used to detect when an individual swift # filesystem exceeds a certain usage level e.g. 80% is a MEDIUM alarm and # 90% is a HIGH alarm. Note the metric is a host rather than aggregated # cp metric - { name: "Swift individual disk usage exceeds 80%", description: "Alarms if the swift individual disk usage exceeds the 80%", severity: "MEDIUM", expression: "swiftlm.diskusage.host.max.usage > 80 and swiftlm.diskusage.host.max.usage <= 90", match_by: ["hostname"]} - { name: "Swift individual disk usage exceeds 90%", description: "Alarms if the swift individual disk usage usage exceeds 90%", severity: "HIGH", expression: "swiftlm.diskusage.host.max.usage > 90", match_by: ["hostname"]} # The following 2 alarms are used to detect when the average of all swift # filesystems exceeds a certain usage level e.g. 80% is a MEDIUM alarm and # 90% is a HIGH alarm. This should equate to alarming when the total used # storage exceeds 80% and 90%. - { name: "Swift total disk usage exceeds 80%", description: "Alarms if the swift total disk usage exceeds 80%", severity: "MEDIUM", expression: "swiftlm.diskusage.cp.avg.usage > 80 and swiftlm.diskusage.cp.avg.usage <= 90", match_by: ["control_plane", "cloud_name"]} - { name: "Swift total disk usage exceeds 90%", description: "Alarms if the swift total disk usage exceeds 90%", severity: "HIGH", expression: "swiftlm.diskusage.cp.avg.usage > 90", match_by: ["control_plane", "cloud_name"]} # OpsConsole uses this to alarm the 24hour availability panel. we use the # avail_minute metric even through the panel shows the value for avail_day. # The reason is that an outage will take up to 24 hours to bring the # availability back to 100%, but we don't to alarm the operator when the # system is *now* back to normal. - { name: "Swift service per-minute availability", description: "Alarms if the swift service reports unavailable for the previous minute", severity: "HIGH", expression: "swiftlm.umon.target.val.avail_minute < 100", match_by: ["control_plane", "cloud_name"]} - { name: "Swift uptime-monitor status", description: "Alarms if the swiftlm-uptime-monitor has errors using Keystone (keystone-get-token), Swift (rest-api) or Swift's healthcheck.", severity: "HIGH", expression: "swiftlm.umon.target.check.state > 1", match_by: ["control_plane", "cloud_name", "url", "component"]} # These alarms check the status of various components of the system - { name: "Swift smart array controller status", description: "Alarms if there is a failure in the Smart Array.", severity: "HIGH", expression: "swiftlm.hp_hardware.ssacli.smart_array > 1", match_by: ["hostname", "controller_slot", "component", "sub_component"] } - { name: "Swift physical drive status", description: "Alarms if there is a failure in the Physical Drive.", severity: "HIGH", expression: "swiftlm.hp_hardware.ssacli.physical_drive > 1", match_by: ["box", "bay", "hostname"]} - { name: "Swift logical drive status", description: "Alarms if there is a failure in the Logical Drive.", severity: "HIGH", expression: "swiftlm.hp_hardware.ssacli.logical_drive > 1", match_by: ["hostname", "logical_drive"]} - { name: "Swift service listening on ip and port", description: "Alarms if a swift service is listening on the wrong ip or port.", severity: "HIGH", expression: "swiftlm.swift.swift_services.check_ip_port > 1", match_by: ["hostname", "component"]} # Old alarms need to be removed for two reasons: # - We no longer want an alarm # - The alarm expression changes. The only way to do this is to delete the # original alarm (here) and change the alarm name (above). Most alarms # here fall into this category # Note: you must do this for each released version. However mid-development # changes can simply be made above since they do not need to be upgradeable. - name: swift-monitor | monasca_alarms | Remove old monasca alarm definitions run_once: true monasca_alarm_definition: name: "{{ item.name }}" state: "{{ item.state }}" keystone_url: "{{ keystone_url }}" keystone_user: "{{ keystone_user }}" keystone_password: "{{ keystone_password }}" keystone_project: "{{ keystone_project }}" keystone_project_domain: "{{ keystone_project_domain }}" keystone_user_domain: "{{ keystone_user_domain }}" keystone_verify: "{{ system_cacert_file }}" monasca_api_url: "{{ monasca_alarm_definition_api_url }}" with_items: - { name: "Swift host ping", state: "absent"} - { name: "Swift memcache connect", state: "absent"} - { name: "Swift services", state: "absent"} - { name: "Drive URE errors", state: "absent"} - { name: "Swift host socket connect", state: "absent"} - { name: "Swift host socket connect", state: "absent"} - { name: "Swift rsync connect", state: "absent"} - { name: "Swift filesystem mount status", state: "absent"} - { name: "Swift file ownership", state: "absent"} - { name: "Swift smart array status", state: "absent"} 070701000000FE000081A40000000000000000000000015C7A0D8A00000A19000000000000000000000000000000000000005D00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-monitor/tasks/monasca_custom_plugins.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- # # Installs custom plugin modules for monasca agent if any are defined. # NB after these tasks, monasca_setup should be run to detect the # installed plugins. # # Find custom detect modules - name: swift-monitor | monasca_custom_plugins | Find monasca custom detect plugins command: find {{ detect_plugins_src }} -maxdepth 1 -type f -name *.py ! -name __init__.py register: detect_plugins ignore_errors: yes # Find custom check modules - name: swift-monitor | monasca_custom_plugins | Find monasca custom check plugins command: find {{ check_plugins_src }} -maxdepth 1 -type f -name *.py ! -name __init__.py register: check_plugins ignore_errors: yes # Create monasca agent dirs in /usr/lib (if necessary) - name: swift-monitor | monasca_custom_plugins | Create dirs for installing monasca custom check plugins file: path: "{{ item }}" state: directory mode: "u=rwx,g=rx,o=rx" with_items: - "{{ monasca_agent_detection_plugin_dir }}" - "{{ monasca_agent_check_plugin_dir }}" when: check_plugins.stdout != "" and detect_plugins.stdout != "" # symlink to custom detect modules - name: swift-monitor | monasca_custom_plugins | Install swiftlm custom monasca detect plugins file: src: "{{ item }}" dest: "{{ monasca_agent_detection_plugin_dir }}{{ item | basename }}" owner: root group: root state: link mode: "u=rw,g=r,o=r" with_items: - "{{ detect_plugins.stdout_lines }}" when: check_plugins.stdout != "" and detect_plugins.stdout != "" # symlink to custom check modules - name: swift-monitor | monasca_custom_plugins | Install swiftlm custom monasca check plugins file: src: "{{ item }}" dest: "{{ monasca_agent_check_plugin_dir }}{{ item | basename }}" owner: root group: root state: link mode: "u=rw,g=r,o=r" with_items: - "{{ check_plugins.stdout_lines }}" when: check_plugins.stdout != "" and detect_plugins.stdout != "" 070701000000FF000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004600000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-monitor/templates07070100000100000081A40000000000000000000000015C7A0D8A000002F3000000000000000000000000000000000000005900000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-monitor/templates/swiftlm-scan-users{# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. #} User_Alias SWIFTLM_USERS = {{ monasca_agent_user }} SWIFTLM_USERS ALL=(ALL) NOPASSWD: /usr/local/bin/swiftlm-scan 07070100000101000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004100000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-monitor/vars07070100000102000081A40000000000000000000000015C7A0D8A000006F6000000000000000000000000000000000000004A00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-monitor/vars/main.yml# # (c) Copyright 2015,2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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. # --- # # Define vars used during monasca custom agent install # project: swiftlm project_src: "{% if deployer_media_legacy_layout|bool -%} /opt/stack/service/{{ project }}/venv/lib/python2.7/site-packages/{{ project }} {%- else -%} /usr/lib/python2.7/site-packages/{{ project }}/ {%- endif -%}" # path where custom detect plugin(s) may be found (a valid path for 'find') detect_plugins_src: "{{ project_src }}/monasca/detect_plugins" # path where custom check plugin(s) may be found (a valid path for 'find') check_plugins_src: "{{ project_src }}/monasca/check_plugins" # # Define vars used during monasca custom agent configuration # # Default list of files from which swiftlm_check will read metrics. swiftlm_check_metrics_files: "" # Default list of subcommands that swiftlm_check will use with swiftlm-scan. # Note: this list must NOT contain whitespace swiftlm_check_subcommands: "" # Default list of subcommands for which swiftlm_check not report measurements # with value OK (0). # Note: this list must NOT contain whitespace swiftlm_check_suppress_ok: "" 07070100000103000041ED0000000000000000000000065C7A0D8A00000000000000000000000000000000000000000000004300000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-post-configure07070100000104000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004C00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-post-configure/defaults07070100000105000081A40000000000000000000000015C7A0D8A0000053B000000000000000000000000000000000000005500000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-post-configure/defaults/main.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- keystone_admin_user: "{{ KEY_API.vars.keystone_admin_user }}" keystone_admin_password: "{{ KEY_API.vars.keystone_admin_pwd | quote }}" keystone_default_domain: "{{ KEY_API.vars.keystone_default_domain }}" keystone_admin_endpoint: "{{ keystone_auth_url }}" keystone_service_project_name: "{{ KEY_API.vars.keystone_service_tenant }}" keystone_admin_role: "{{ KEY_API.vars.keystone_admin_role }}" keystone_user_domain_name: "{{ keystone_default_domain }}" keystone_project_domain_name: "{{ keystone_default_domain }}" keystone_region : "{{ KEY_API.advertises.vips.public[0].region_name }}" swift_member_role: Member swift_operator_role: swiftoperator swift_reseller_admin_role: ResellerAdmin 07070100000106000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004800000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-post-configure/meta07070100000107000081A40000000000000000000000015C7A0D8A000002A4000000000000000000000000000000000000005100000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-post-configure/meta/main.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- dependencies: - role: _SWF-CMN 07070100000108000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004900000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-post-configure/tasks07070100000109000081A40000000000000000000000015C7A0D8A0000090B000000000000000000000000000000000000006100000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-post-configure/tasks/keystone_change_pwd.yml# # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: swift-post-configure | keystone_change_pw | Get a domain scoped token keystone_v3: endpoint: "{{ keystone_admin_endpoint }}/v3" login_username: "{{ keystone_admin_user }}" login_password: "{{ keystone_admin_password }}" login_user_domain_name: "{{ keystone_default_domain }}" login_domain_name: "{{ keystone_default_domain }}" action: "token_get" register: domain_scoped_token - name: swift-post-configure | keystone_change_pw | Update swift user password become: yes keystone_v3: login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "reset_password_by_admin" user_name: "{{ swift_user_name }}" user_password: "{{ swift_user_password }}" user_domain_name: "{{ keystone_user_domain_name }}" run_once: true - name: swift-post-configure | keystone_change_pw | Update Swift Monitor user password become: yes keystone_v3: login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "reset_password_by_admin" user_name: "{{ swift_monitor_user }}" user_password: "{{ swift_monitor_password }}" user_domain_name: "{{ keystone_user_domain_name }}" run_once: true - name: swift-post-configure | keystone_change_pw | Update Swift Dispersion user password become: yes keystone_v3: login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "reset_password_by_admin" user_name: "{{ swift_dispersion_user }}" user_password: "{{ swift_dispersion_password }}" user_domain_name: "{{ keystone_user_domain_name }}" run_once: true 0707010000010A000081A40000000000000000000000015C7A0D8A00001885000000000000000000000000000000000000005B00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-post-configure/tasks/keystone_conf.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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. # --- - name: swift-post-configure | keystone_conf | Get a domain scoped token keystone_v3: endpoint: "{{ keystone_admin_endpoint }}/v3" login_username: "{{ keystone_admin_user }}" login_password: "{{ keystone_admin_password }}" login_user_domain_name: "{{ keystone_default_domain }}" login_domain_name: "{{ keystone_default_domain }}" action: "token_get" register: domain_scoped_token - name: swift-post-configure | keystone_conf | Create Swift Service User in service tenant become: yes keystone_v3: login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "create_user" user_name: "{{ swift_user_name }}" user_password: "{{ swift_user_password }}" description: "Swift service user" user_domain_name: "{{ keystone_user_domain_name }}" run_once: true - name: swift-post-configure | keystone_conf | Grant the admin role to swift user become: yes keystone_v3: login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "grant_project_role" user_name: "{{ swift_user_name }}" project_name: "{{ keystone_service_project_name }}" role_name: "{{ keystone_admin_role }}" user_domain_name: "{{ keystone_user_domain_name }}" project_domain_name: "{{ keystone_project_domain_name }}" run_once: true # Temporary hack to allow replacing the role Member in the model with # _member_ - name: swift-post-configure | keystone_conf | Create role Member keystone_v3: login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "create_role" role_name: "{{ swift_member_role }}" description: "Swift Member role" run_once: true - name: swift-post-configure | keystone_conf | Create role swiftoperator keystone_v3: login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "create_role" role_name: "{{ swift_operator_role }}" description: "Swift operator role" run_once: true - name: swift-post-configure | keystone_conf | Create role ResellerAdmin keystone_v3: login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "create_role" role_name: "{{ swift_reseller_admin_role }}" description: "Swift reseller admin role" run_once: true - name: swift-post-configure | keystone_conf | Create Swift Monitor tenant become: yes keystone_v3: login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "create_project" project_name: "{{ swift_monitor_tenant }}" project_domain_name: "{{ keystone_project_domain_name }}" description: "Swift monitor project" run_once: true - name: swift-post-configure | keystone_conf | Create Swift Monitor user become: yes keystone_v3: login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "create_user" user_name: "{{ swift_monitor_user }}" user_password: "{{ swift_monitor_password }}" description: "Swift monitor user" user_domain_name: "{{ keystone_user_domain_name }}" run_once: true - name: swift-post-configure | keystone_conf | Assign admin to Swift Monitor user become: yes keystone_v3: login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "grant_project_role" user_name: "{{ swift_monitor_user }}" project_name: "{{ swift_monitor_tenant }}" role_name: "admin" user_domain_name: "{{ keystone_user_domain_name }}" project_domain_name: "{{ keystone_project_domain_name }}" run_once: true - name: swift-post-configure | keystone_conf | Create Swift Dispersion tenant become: yes keystone_v3: login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "create_project" project_name: "{{ swift_dispersion_tenant }}" project_domain_name: "{{ keystone_project_domain_name }}" description: "Swift dispersion project" run_once: true - name: swift-post-configure | keystone_conf | Create Swift Dispersion user become: yes keystone_v3: login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "create_user" user_name: "{{ swift_dispersion_user }}" user_password: "{{ swift_dispersion_password }}" description: "Swift dispersion user" user_domain_name: "{{ keystone_user_domain_name }}" run_once: true - name: swift-post-configure | keystone_conf | Assign admin to Swift Dispersion user become: yes keystone_v3: login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "grant_project_role" user_name: "{{ swift_dispersion_user }}" project_name: "{{ swift_dispersion_tenant }}" role_name: "admin" user_domain_name: "{{ keystone_user_domain_name }}" project_domain_name: "{{ keystone_project_domain_name }}" run_once: true # NOTE(gyee): we assume SES is enabled for Swift if 'ses_radosgw_url' is # defined - name: swift-post-configure | keystone_conf | Update Swift endpoints if SES is enabled become: yes keystone_v3: login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ keystone_admin_endpoint }}/v3" admin_url: "{{ ses_radosgw_url }}" internal_url: "{{ ses_radosgw_url }}" public_url: "{{ ses_radosgw_url }}" service_name: "swift" action: "create_endpoint" when: ses_radosgw_url is defined run_once: true 0707010000010B000081A40000000000000000000000015C7A0D8A0000036A000000000000000000000000000000000000005500000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-post-configure/tasks/swiftlm.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: swift-post-configure | swiftlm | Copy swiftlm-scan.conf template: src: swiftlm-scan.conf.j2 dest: "{{ swiftlm_dir }}/swiftlm-scan.conf" owner: "{{ swift_user }}" group: "{{ swift_group }}" mode: 0400 0707010000010C000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004D00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-post-configure/templates0707010000010D000081A40000000000000000000000015C7A0D8A00000668000000000000000000000000000000000000006200000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swift-post-configure/templates/swiftlm-scan.conf.j2{# # # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # #} # This file has the Ardana OpenStack values that apply only to the Swift # service. # You may make changes to this file by adding sections/options below. [DEFAULT] swift_proxy_server = {{ swift_proxy_server_role }} swift_account_server = {{ swift_account_server_role }} swift_container_server = {{ swift_container_server_role }} swift_object_server = {{ swift_object_server_role }} swift_mount_point = {{ swift_devices }} [network-interface] {% if host.bind.SWF_PRX is defined %} proxy_bind_ip = {{ proxy_bind_ip }} {% endif %} {% if host.bind.SWF_ACC is defined %} account_bind_ip = {{ account_bind_ip }} {% endif %} {% if host.bind.SWF_CON is defined %} container_bind_ip = {{ container_bind_ip }} {% endif %} {% if host.bind.SWF_OBJ is defined %} object_bind_ip = {{ object_bind_ip }} {% endif %} {% if host.bind.SWF_RSY is defined %} rsync_bind_ip = {{ rsync_bind_ip }} {% endif %} [rsync-target] {% if host.bind.SWF_RSY is defined %} rsync_bind_port = {{ rsync_bind_port }} {% endif %} 0707010000010E000041ED0000000000000000000000065C7A0D8A00000000000000000000000000000000000000000000004000000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-aggregate0707010000010F000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004900000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-aggregate/defaults07070100000110000081A40000000000000000000000015C7A0D8A000002D3000000000000000000000000000000000000005200000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-aggregate/defaults/main.yml# # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- swiftlm_aggregated_metrics: "{{ swiftlm_cache_path }}/aggregated_metrics.json" 07070100000111000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004500000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-aggregate/meta07070100000112000081A40000000000000000000000015C7A0D8A000002A4000000000000000000000000000000000000004E00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-aggregate/meta/main.yml# # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- dependencies: - role: _SWF-CMN 07070100000113000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004600000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-aggregate/tasks07070100000114000081A40000000000000000000000015C7A0D8A00000350000000000000000000000000000000000000005400000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-aggregate/tasks/configure.yml# # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: swiftlm-aggregate | configure | Copy /etc/cron.d/swiftlm-aggregate template: src: swiftlm-aggregate.j2 dest: /etc/cron.d/swiftlm-aggregate owner: root group: root mode: 0644 07070100000115000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004A00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-aggregate/templates07070100000116000081A40000000000000000000000015C7A0D8A00000365000000000000000000000000000000000000005F00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-aggregate/templates/swiftlm-aggregate.j2{# # # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # #} # Cronjob to gather aggregated swift-recon data. SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin MAILTO="" */1 * * * * root swiftlm-aggregate --metrics {{ swiftlm_aggregated_metrics }} --all 07070100000117000041ED0000000000000000000000035C7A0D8A00000000000000000000000000000000000000000000004000000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-provision07070100000118000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004600000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-provision/tasks07070100000119000081A40000000000000000000000015C7A0D8A0000071E000000000000000000000000000000000000005900000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-provision/tasks/install-legacy.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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. # --- - name: swiftlm-provision | install | Update venv cache become: yes install_package: cache: update # This service is used to mount the swift specific filesystems on a server # on boot. There is no need to postpone activating the updated service, there # is no start ansible fot this service. If the swiftlm venv package changes # there is no need to notify a handler. On next reboot, the service will use # the correct venv. - name: swiftlm-provision | install | Create swiftlm-mount service install_package: name: swiftlm service: swiftlm-mount state: present register: swiftlm_provision_install_result - name: swiftlm-provision | install | Register the swiftlm-mount systemd service setup_systemd: service: swiftlm-mount cmd: swiftlm-drive-provision user: root group: root args: "--mount" when: swiftlm_provision_install_result.changed # With 'enable' SLES systemctl fails, claiming 'Too many levels of symbolic # links', if service is already enabled. Using reenable as workaround. - name: swiftlm-provision | install | Enable the swiftlm-mount service to start on boot command: systemctl reenable swiftlm-mount 0707010000011A000081A40000000000000000000000015C7A0D8A0000054E000000000000000000000000000000000000005200000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-provision/tasks/install.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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. # --- - name: swiftlm-provision | install | Update venv cache (legacy) include: install-legacy.yml when: deployer_media_legacy_layout|bool - name: swiftlm-provision | install | Create swiftlm-mount service (rpm) become: yes package: name: ardana-swiftlm-drive-provision state: present when: deployer_media_legacy_layout|bool == false # With 'enable' SLES systemctl fails, claiming 'Too many levels of symbolic # links', if service is already enabled. Using reenable as workaround. - name: swiftlm-provision | install | Enable the swiftlm-drive-provision service to start on boot (rpm) command: systemctl reenable swiftlm-drive-provision when: deployer_media_legacy_layout|bool == false 0707010000011B000081A40000000000000000000000015C7A0D8A00000283000000000000000000000000000000000000004F00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-provision/tasks/main.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- 0707010000011C000041ED0000000000000000000000075C7A0D8A00000000000000000000000000000000000000000000004600000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-ring-supervisor0707010000011D000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004F00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-ring-supervisor/defaults0707010000011E000081A40000000000000000000000015C7A0D8A00000631000000000000000000000000000000000000005800000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-ring-supervisor/defaults/main.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- region_name: "{{ KEY_API.advertises.vips.public[0].region_name }}" swiftlm_global: global: "{{ global }}" this_swift_instance: "{{ host.my_dimensions.cloud_name }}/{{ host.my_dimensions.control_plane }}" # We perform builds on SWF-ACC[0]. However, we make backups on all # SWF_ACC nodes for two reasons: # - allows deploy of latest rings even if SWF-ACC[0] is down # - allows the definition of SWF-ACC[0] to change (e.g., when a cluster # is added to the model). # We need the network-hostnames where rsync runs - hence use consumes relationship builder_backup_nodes: "{{ SWF_RNG.consumes_SWF_ACC.members.private }}" optionally_pretend: "{% if pretend_min_part_hours_passed | default(0) | bool %}--pretend-min-part-hours-passed{% endif %}" optionally_limit_ring: "{% if limit_ring is defined %}--limit-ring {{ limit_ring }}{% endif %}" optionally_set_detail: "{% if drive_detail | default(0) | bool %}--detail full{% endif %}" 0707010000011F000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004E00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-ring-supervisor/library07070100000120000081ED0000000000000000000000015C7A0D8A00002552000000000000000000000000000000000000006200000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-ring-supervisor/library/swift_copy_rings.py#!/usr/bin/python # # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # DOCUMENTATION = ''' --- module: swift_copy_rings short_description: Copy Swift ring files description: - This module copies Swift ring files from a source directory to a target directory (usually /etc/swift). - It only copies files if they have changed. It determines this by comparing sha1 check sums. - If the destination directory contains a ring file that is not in the source directory, the file is (optionally) removed. - The ownership and mode of the files can also be optionally set. It sets these attributes whether or not a file is copied. - Only ring files are copied (.builder and .ring.gz). The object storage policy has special handling. If the source files are called object-0.builder or object-0.ring.gz, they are copied to object.builder and object.ring.gz (i.e. the "-0" is removed from the name) - Ring files in subdirectories (i.e., backups) are also copied. options: src: description: - Source directory path to copy files from. required: true default: null choices: [] aliases: [] dest: description: - Directory path where files are copied to. required: true default: null choices: [] aliases: [] mode: description: - Mode of file in destination directory required: no default: null choices: [] aliases: [] owner: description: - name of the user that should own the file required: no default: null choices: [] aliases: [] group: description: - name of the group that should own the file required: no default: null choices: [] remove: description: - Remove files from destination if not in source required: no default: no choices: [] ''' EXAMPLES = ''' - swift_copy_files src=/etc/d dest=/etc/swift remove=no owner=swift group=swift mode=0400 ''' RETURN = ''' changes: description: List of actions taken on source files returned: success type: array sample: "['copy /etc/d/account.builder to /etc/swift/account.builder]" ''' import json import hashlib import grp import pwd import os import shutil import sys import shlex RING_NAMES = ['account', 'container', 'object'] COPY_TYPES = ['.ring.gz', '.builder'] def is_bool(value): if value.lower() in ['yes', 'true', '1']: return True return False def is_ringfile(name): prefix_ok = False ext_ok = False for prefix in RING_NAMES: if name.startswith(prefix): prefix_ok = True for ext in COPY_TYPES: if name.endswith(ext): ext_ok = True return prefix_ok and ext_ok # The next two functions manage mapping object-0.<ext> in source directory # to object.<ext> in destination directory. If the ring is not object-0, the # name is unchanged. def rm0(name): if name.startswith('object-0.'): return 'object.' + name[len('object-0.'):] else: return name def add0(name): if name.startswith('object.'): return 'object-0.' + name[len('object.'):] else: return name def checksum(dirname, name): m = hashlib.sha1() filename = os.path.join(os.path.realpath(dirname), name) try: fd = open(filename, 'r') for chunk in fd.read(64*1024): m.update(chunk) cksum = repr(m.digest()) except IOError: cksum = 0 return cksum def remove(actions, dirname, name): filename = os.path.join(os.path.realpath(dirname), name) os.remove(filename) actions.append('remove %s' % filename) def copy(changes, src, sname, dest, dname): srcname = os.path.join(os.path.realpath(src), sname) destname = os.path.join(os.path.realpath(dest), dname) shutil.copy(srcname, destname) shutil.copystat(srcname, destname) changes.append('copy %s to %s' % (srcname, destname)) def set_owner_mode(actions, dirname, name, owner, group, mode): filename = os.path.join(os.path.realpath(dirname), name) stat = os.stat(filename) if owner: owner = pwd.getpwnam(owner).pw_uid if stat.st_uid == owner: owner = -1 # Already same owner else: owner = -1 if group: group = grp.getgrnam(group).gr_gid if stat.st_gid == group: group = -1 # Already same group if owner >= 0 or group >= 0: os.chown(filename, owner, group) actions.append('chown %s to %s %s' % (filename, owner, group)) if mode: orig_mode = str(oct(stat.st_mode))[-4:] if mode != orig_mode: os.chmod(filename, int(mode, 8)) actions.append('chmod %s to %s' % (filename, mode)) def main(): dest_files = [] src = '' dest = '' ret = {} owner = None group = None mode = None do_removes = False changes = [] file_actions = [] try: args_file = sys.argv[1] args_data = file(args_file).read() arguments = shlex.split(args_data) except (IndexError, IOError): arguments = sys.argv # Running interactively try: for arg in arguments: if "=" in arg: (key, value) = arg.split('=') if key == 'src': src = value elif key == 'dest': dest = value elif key == 'remove': do_removes = is_bool(value) elif key == 'owner': owner = value elif key == 'group': group = value elif key == 'mode': mode = value else: raise Exception('Invalid argument: %s' % key) # noqa # Find files in src and dest directories src_file_names = [] for _, _, files in os.walk(os.path.realpath(src), topdown=True): src_file_names = files break dest_file_names = [] for _, _, files in os.walk(os.path.realpath(dest), topdown=True): dest_file_names = files break # Compare files and work out actions for each file. Actions are: # same: files are same; no action needed # copy: files are different, or missing in dest; copy src to dest # remove: file in dest, but not src; remove file from dest no_ringfiles = True for name in src_file_names: if is_ringfile(name): no_ringfiles = False src_checksum = checksum(src, name) if rm0(name) in dest_file_names: dest_checksum = checksum(dest, rm0(name)) else: dest_checksum = 0 # dest is missing if src_checksum == dest_checksum: # src/dest are same checksum file_actions.append({'name': name, 'action': 'same'}) else: # src/dest different, or missing from dest file_actions.append({'name': name, 'action': 'copy'}) dest_files.append(name) if no_ringfiles: raise Exception('No ring files in %s' % src) # noqa for name in dest_file_names: if is_ringfile(name): if add0(name) not in src_file_names: # dest file no longer in src if do_removes: file_actions.append({'name': name, 'action': 'remove'}) else: file_actions.append({'name': name, 'action': 'left'}) # Perform copy/remove actions for file_action in file_actions: name = file_action.get('name') action = file_action.get('action') if action == 'same': pass elif action == 'remove': remove(changes, dest, rm0(name)) elif action == 'copy': copy(changes, src, name, dest, rm0(name)) src_checksum = checksum(src, name) dest_checksum = checksum(dest, rm0(name)) if src_checksum != dest_checksum: raise Exception('File %s: post-copy checksums' ' do not match' % os.path.join(src, name)) if action in ['same', 'copy', 'left']: set_owner_mode(changes, dest, rm0(name), owner, group, mode) ret['failed'] = False ret['rc'] = 0 except (IOError, OSError, Exception) as err: # noqa ret['failed'] = True ret['rc'] = 1 ret['msg'] = str(err) ret['changes'] = changes ret['changed'] = False if changes: ret['changed'] = True print(json.dumps(ret)) if __name__ == '__main__': main() 07070100000121000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004B00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-ring-supervisor/meta07070100000122000081A40000000000000000000000015C7A0D8A000002A4000000000000000000000000000000000000005400000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-ring-supervisor/meta/main.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- dependencies: - role: _SWF-CMN 07070100000123000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004C00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-ring-supervisor/tasks07070100000124000081A40000000000000000000000015C7A0D8A00000630000000000000000000000000000000000000005C00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-ring-supervisor/tasks/build-rings.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: swiftlm-ring-supervisor | build-rings | Build ring (make-delta, rebalance) command: swiftlm-ring-supervisor --make-delta --rebalance --cloud {{ host.my_dimensions.cloud_name }} --control-plane {{ host.my_dimensions.control_plane }} {{ optionally_pretend }} {{ optionally_limit_ring }} register: report - name: swiftlm-ring-supervisor | build_rings | Print outcome debug: var=report.stdout_lines - name: swiftlm-ring-supervisor | build_rings | Get changelog date command: date +'%s-%Y-%m-%d-%H:%M' register: changelog_date - name: swiftlm-ring-supervisor | build_rings | Save outcome template: src: "swiftlm-ring-supervisor.changelog.j2" dest: "{{ swiftlm_etc }}/{{ this_swift_instance }}/builder_dir/backups/swiftlm-ring-supervisor-{{ changelog_date.stdout }}.changelog" owner: "{{ swift_user }}" group: "{{ swift_group }}" mode: "0400" 07070100000125000081A40000000000000000000000015C7A0D8A00001510000000000000000000000000000000000000005A00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-ring-supervisor/tasks/configure.yml# # (c) Copyright 2015,2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: swiftlm-ring-supervisor | configure | Create swift ring supervisor dirs file: path: "{{ swiftlm_etc }}/{{ item }}" state: directory owner: "{{ swift_user }}" group: "{{ swift_group }}" mode: 0755 with_items: - "{{ this_swift_instance }}" - "{{ this_swift_instance }}/config" - "{{ this_swift_instance }}/builder_dir" - "{{ this_swift_instance }}/builder_dir/backups" - "{{ this_swift_instance }}/deploy_dir" - "{{ this_swift_instance }}/deploy_dir//backups" - name: swiftlm-ring-supervisor | configure | Create input model file template: src: input-model.j2 dest: "{{ swiftlm_etc }}/{{ this_swift_instance }}/config/input-model.yml" owner: "{{ swift_user }}" group: "{{ swift_group }}" mode: "0400" - name: swiftlm-ring-supervisor | configure | Create control plane servers file template: src: control_plane_servers.j2 dest: "{{ swiftlm_etc }}/{{ this_swift_instance }}/config/control_plane_servers.yml" owner: "{{ swift_user }}" group: "{{ swift_group }}" mode: "0400" - name: swiftlm-ring-supervisor | configure | Create consumes file template: src: swift_ring_builder_consumes.j2 dest: "{{ swiftlm_etc }}/{{ this_swift_instance }}/config/swift_ring_builder_consumes.yml" owner: "{{ swift_user }}" group: "{{ swift_group }}" mode: "0400" - name: swiftlm-ring-supervisor | configure | Create configuration_data.yml template: src: configuration_data.j2 dest: "{{ swiftlm_etc }}/{{ this_swift_instance }}/config/configuration_data.yml" owner: "{{ swift_user }}" group: "{{ swift_group }}" mode: "0400" - name: swiftlm-ring-supervisor | configure | Create drive_configurations dirs file: path: "{{ swiftlm_etc }}/{{ this_swift_instance }}/config/drive_configurations/{{ item }}" state: directory owner: "{{ swift_user }}" group: "{{ swift_group }}" mode: "0755" with_items: "{{ swift_storage_servers }}" - name: swiftlm-ring-supervisor | configure | Create drive configurations file template: src: drive_configuration.j2 dest: "{{ swiftlm_etc }}/{{ this_swift_instance }}/config/drive_configurations/{{ item }}/drive_configuration.yml" owner: "{{ swift_user }}" group: "{{ swift_group }}" mode: "0400" when: "hostvars['{{ item }}']['ardana_drive_configuration'] is defined" with_items: "{{ swift_storage_servers }}" # Handle Upgrade Issues # # In Ardana OpenStack, they are in /etc/swiftlm/<cloud>/<control-plane>/builder_dir # Copy the files from the old to new location -- and from now on, ring changes # are based on the new location. # We don't delete the builder files in the old location (just in case something # goes wrong). # The "removes" here is effective after the rename task. # The rename below is an optimisation, since rsync --update means that # an old builder_dir will not overwrite the latest builder_dir files. # DO NOT refactor to use rsync module. It cannot be used for this action - name: swiftlm-ring-supervisor | configure | Move legacy builder files command: rsync --archive --update {{ swiftlm_etc }}/builder_dir/region-{{ region_name }}/ {{ swiftlm_etc }}/{{ this_swift_instance }}/builder_dir args: removes: "{{ swiftlm_etc }}/builder_dir/region-{{ region_name }}/account.builder" become: yes - name: swiftlm-ring-supervisor | configure | Rename legacy builder file directory command: mv {{ swiftlm_etc }}/builder_dir {{ swiftlm_etc }}/legacy_builder_dir args: removes: "{{ swiftlm_etc }}/builder_dir/region-{{ region_name }}/account.builder" become: yes # Handle old releases -- remove legacy files and directories # # In Ardana OpenStack, builder_dir and deploy_dir uses a "region" structure - name: swiftlm-ring-supervisor | configure | Remove legacy files file: path: "{{ item }}" state: absent with_items: - "{{ swiftlm_etc }}/swift-rings-tarball.tar" - "{{ swiftlm_etc }}/deploy_dir/swift-rings-tarball.tar" - "{{ swiftlm_etc }}/deploy_dir/swift-rings-tarball.checksum" - "{{ swiftlm_etc }}/deploy_dir/swift-rings.checksum" - "{{ swiftlm_etc }}/swift_ring_builder_consumes.yml" - "{{ swiftlm_etc }}/input-model.yml" - "{{ swiftlm_etc }}/hosts.hf" # DO NOT refactor to use file: state:absent. It cannot be used for this action - name: swiftlm-ring-supervisor | configure | Remove legacy drive_configurations command: rm -R "{{ swiftlm_etc }}/drive_configurations" args: removes: "{{ swiftlm_etc }}/drive_configurations" - name: swiftlm-ring-supervisor | configure | Remove legacy deploy_dir command: rm -R "{{ swiftlm_etc }}/deploy_dir" args: removes: "{{ swiftlm_etc }}/deploy_dir" 07070100000126000081A40000000000000000000000015C7A0D8A000007E0000000000000000000000000000000000000005D00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-ring-supervisor/tasks/deploy-rings.yml# # (c) Copyright 2015,2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- # In this task we pull the ring files from all potential builder and backup # nodes. Hence, we only need one server to be up to get the latest # version of the rings. If all are down, we continue to use the rings we # already have (since deploy_dir is unchanged). # If this is first play after this node is reimaged *and* all builder and # backups are down, this play will fail when it later attempts to copy files # to /etc/swift. # DO NOT refactor to use rsync module. It cannot be used for this action - name: swiftlm-ring-supervisor | deploy-rings | Pull ring files from builder nodes command: rsync --archive --update {{ item.host }}::rings/ {{ swiftlm_etc }}/{{ this_swift_instance }}/deploy_dir ignore_errors: yes become: yes with_items: "{{ builder_backup_nodes }}" - name: swiftlm-ring-supervisor| deploy-rings | Create final ring destination /etc/swift # May already exist file: path: "{{ swift_dir }}" state: directory owner: "{{ swift_user }}" group: "{{ swift_group }}" mode: "0755" become: yes - name: swiftlm-ring-supervisor | deploy-rings | Copy rings to /etc/swift swift_copy_rings: src: "{{ swiftlm_etc }}/{{ this_swift_instance }}/deploy_dir" dest: "{{ swift_dir }}" owner: "{{ swift_user }}" group: "{{ swift_group }}" mode: "0440" remove: "yes" become: yes 07070100000127000081A40000000000000000000000015C7A0D8A00000554000000000000000000000000000000000000006100000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-ring-supervisor/tasks/sync_from_backup.yml# # (c) Copyright 2015,2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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 the builder node is reimaged, we need the latest version of the builder # files so that subsequent ring builds work correctly. We need to ignore # errors here since during initial deploy, there is no backup copy. Also, # we don't want a play to stop on *this* node because a backup node is down. # DO NOT refactor to use rsync module. It cannot be used for this action - name: swiftlm-ring-supervisor | sync_from_backup | Pull files from backup command: rsync --archive --no-owner --no-group --update --timeout=60 --contimeout=10 {{ item.host }}::rings/ {{ swiftlm_etc }}/{{ this_swift_instance }}/builder_dir ignore_errors: true with_items: "{{ builder_backup_nodes }}" 07070100000128000081A40000000000000000000000015C7A0D8A000004FA000000000000000000000000000000000000005F00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-ring-supervisor/tasks/sync_to_backup.yml# # (c) Copyright 2015,2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- # Use --no-owner --no-group because we are pushing (remote rsync daemon can't # keep root ownership). # The "with_items" means we also rsync to ourselves, but with "--update" we # don't actually push the files. # DO NOT refactor to use rsync module. It cannot be used for this action - name: swiftlm-ring-supervisor | sync_to_backup | Make a backup of builder command: rsync --archive --no-owner --no-group --update --timeout=60 --contimeout=10 {{ swiftlm_etc }}/{{ this_swift_instance }}/builder_dir/ {{ item.host }}::rings ignore_errors: true with_items: "{{ builder_backup_nodes }}" 07070100000129000081A40000000000000000000000015C7A0D8A0000062E000000000000000000000000000000000000006500000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-ring-supervisor/tasks/validate-input-model.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: swiftlm-ring-supervisor | validate-input-model | Validate input model command: swiftlm-ring-supervisor --make-delta --cloud {{ host.my_dimensions.cloud_name }} --control-plane {{ host.my_dimensions.control_plane }} --ring-delta /tmp/tmp-ring-delta.yml - name: swiftlm-ring-supervisor | validate-input-model | Summarise changes command: swiftlm-ring-supervisor --report --cloud {{ host.my_dimensions.cloud_name }} --control-plane {{ host.my_dimensions.control_plane }} --ring-delta /tmp/tmp-ring-delta.yml {{ optionally_limit_ring }} {{ optionally_set_detail }} register: report - name: swiftlm-ring-supervisor | validate-input-model | Cleanup file: path: /tmp/tmp-ring-delta.yml state: absent - name: swiftlm-ring-supervisor | validate-input-model | Print report debug: var=report.stdout_lines 0707010000012A000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000005000000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-ring-supervisor/templates0707010000012B000081A40000000000000000000000015C7A0D8A000002CF000000000000000000000000000000000000006600000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-ring-supervisor/templates/configuration_data.j2{# # # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # #} --- {{ config_data.SWF | default({"undefined": True}) | to_nice_yaml }} 0707010000012C000081A40000000000000000000000015C7A0D8A00000331000000000000000000000000000000000000006900000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-ring-supervisor/templates/control_plane_servers.j2{# # # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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 control_plane_servers | default('-') == '-' %} control_plane_servers: [] {% else %} control_plane_servers: {{ control_plane_servers | to_nice_yaml }} {% endif %} 0707010000012D000081A40000000000000000000000015C7A0D8A0000034E000000000000000000000000000000000000006700000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-ring-supervisor/templates/drive_configuration.j2{# # # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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 hostvars[item]['ardana_drive_configuration'] | default('-') == '-' %} ardana_drive_configuration: [] {% else %} {{ hostvars[item]['ardana_drive_configuration'] | to_nice_yaml }} {% endif %} 0707010000012E000081A40000000000000000000000015C7A0D8A000002AD000000000000000000000000000000000000005F00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-ring-supervisor/templates/input-model.j2{# # # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # #} --- {{ swiftlm_global | to_nice_yaml }} 0707010000012F000081A40000000000000000000000015C7A0D8A000002CC000000000000000000000000000000000000006F00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-ring-supervisor/templates/swift_ring_builder_consumes.j2{# # # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # #} --- {{ SWF_RNG | default({"SWF_RNG": "undefined"}) | to_nice_yaml }} 07070100000130000081A40000000000000000000000015C7A0D8A000002AC000000000000000000000000000000000000007500000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-ring-supervisor/templates/swiftlm-ring-supervisor.changelog.j2{# # # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # #} {{ report.stdout_lines | join('\n') }} 07070100000131000041ED0000000000000000000000075C7A0D8A00000000000000000000000000000000000000000000004500000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-uptime-monitor07070100000132000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004E00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-uptime-monitor/defaults07070100000133000081A40000000000000000000000015C7A0D8A0000076E000000000000000000000000000000000000005700000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-uptime-monitor/defaults/main.yml# # (c) Copyright 2015, 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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. # --- swift_component: swiftlm_uptime_monitor swiftlm_uptime_monitor_restart_required: false # Default service directories swiftlm_uptime_monitor_conf_dir: "{{ ('swiftlm-uptime-monitor' | config_dir()) if deployer_media_legacy_layout|bool else '/etc/swiftlm' }}" object_store_url: "{{ SWF_PRX.advertises.vips.private[0].url }}" endpoint_type: internalURL auth_version: 3 # The director which stores file swiftlm_uptime_monitor_cache_dir: "{{ recon_cache_path }}/swiftlm_uptime_monitor" swiftlm_uptime_monitor_stats_file: "{{ swiftlm_uptime_monitor_cache_dir }}/uptime.stats" swiftlm_logs_dir: /var/log/swiftlm # The main key/value in the swiftlm_uptime_monitor_services dict is currently # not used. # cmd Identifies the name of the binary used when starting the service # conf Specifies the name of the conf file to pass on the cmd line # when starting the service # conf_service Specifies the name of the service that contains the conf file # main Identifies the "main" swift services. It is currently # not used. swiftlm_uptime_monitor_services: swiftlm-uptime-monitor: cmd: swiftlm-uptime-mon conf: swiftlm-uptime-monitor.conf conf_service: swiftlm-uptime-monitor main: true 07070100000134000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004E00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-uptime-monitor/handlers07070100000135000081A40000000000000000000000015C7A0D8A00000359000000000000000000000000000000000000005700000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-uptime-monitor/handlers/main.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: swiftlm_uptime_monitor_config_change set_fact: swiftlm_uptime_monitor_restart_required: true - name: swiftlm_uptime_monitor_venv_change set_fact: swiftlm_uptime_monitor_restart_required: true 07070100000136000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004A00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-uptime-monitor/meta07070100000137000081A40000000000000000000000015C7A0D8A000002A4000000000000000000000000000000000000005300000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-uptime-monitor/meta/main.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- dependencies: - role: _SWF-CMN 07070100000138000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004B00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-uptime-monitor/tasks07070100000139000081A40000000000000000000000015C7A0D8A00000479000000000000000000000000000000000000005E00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-uptime-monitor/tasks/_check_restart.yml# # (c) Copyright 2018 SUSE LLC # # 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. # --- # Trigger a service restart if the special # ardana_notify_swift_restart_required variable was set - name: swiftlm-uptime-monitor | _check_restart | Check restart notification debug: msg: "Trigger swiftlm-uptime-monitor service to restart" changed_when: true when: ardana_notify_swift_restart_required is defined and ardana_notify_swift_restart_required.changed notify: - swiftlm_uptime_monitor_config_change - name: swiftlm-uptime-monitor | _check_restart | Ensure handlers are executed right away become: yes meta: flush_handlers 0707010000013A000081A40000000000000000000000015C7A0D8A000008BF000000000000000000000000000000000000005900000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-uptime-monitor/tasks/configure.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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. # --- - include: ../../_SWF-CMN/tasks/configure.yml - name: swiftlm-uptime-monitor | configure | Create directory /var/cache/swift/swiftlm_uptime_monitor file: path: "{{ swiftlm_uptime_monitor_cache_dir }}" owner: "{{ swift_user }}" group: "{{ swift_group }}" mode: 0755 state: directory - name: swiftlm-uptime-monitor | configure | Create swiftlm_logs_dir directory file: path: "{{ swiftlm_logs_dir }}" owner: root group: adm mode: 0755 state: directory - name: swiftlm-uptime-monitor | configure | Copy /etc/swift/swiftlm-uptime-monitor.conf template: src: swiftlm-uptime-monitor.conf.j2 dest: "{{ swiftlm_uptime_monitor_conf_dir }}/swiftlm-uptime-monitor.conf" owner: "{{ swift_user }}" group: "{{ swift_group }}" mode: 0400 notify: - swiftlm_uptime_monitor_config_change # With 'enable' SLES systemctl fails, claiming 'Too many levels of symbolic # links', if service is already enabled. Using reenable as workaround. - name: swiftlm-uptime-monitor | configure | Enable the Swiftlm Uptime Monitor service on boot (legacy) command: systemctl reenable "{{ item.key }}" with_dict: "{{ swiftlm_uptime_monitor_services }}" when: deployer_media_legacy_layout|bool - name: swiftlm-uptime-monitor | configure | Enable the Swiftlm Uptime Monitor service on boot (rpm) command: systemctl enable swiftlm-uptime-mon when: deployer_media_legacy_layout|bool == false - name: swiftlm-uptime-monitor | configure | Set Swiftlm Uptime Monitor enabled as host fact set_fact: swiftlm_uptime_monitor_enabled: true 0707010000013B000081A40000000000000000000000015C7A0D8A0000082A000000000000000000000000000000000000005E00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-uptime-monitor/tasks/install-legacy.yml# # (c) Copyright 2015,2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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. # --- - include: ../../_SWF-CMN/tasks/install.yml - name: swiftlm-uptime-monitor | install | Update venv cache (legacy) become: yes install_package: cache: update - name: swiftlm-uptime-monitor | install | Install Swiftlm Uptime Monitor Services (legacy) install_package: name: swiftlm service: "{{ item.key }}" state: present activate: act_off with_dict: "{{ swiftlm_uptime_monitor_services }}" register: swiftlm_uptime_monitor_install_result notify: swiftlm_uptime_monitor_venv_change # Get the swiftlm venv version, it is the same for all swiftlm services. - name: swiftlm-uptime-monitor | install | Set conf directory for the service (legacy) set_fact: swiftlm_venv_version: "{{ item.version }}" with_items: "{{ swiftlm_uptime_monitor_install_result.results }}" # Set the conf dir for the latest installed swift venv - set_fact: swiftlm_uptime_monitor_conf_dir: "{{ 'swiftlm-uptime-monitor' | config_dir(swiftlm_venv_version) }}" - name: swiftlm-uptime-monitor | install | Register the Swiftlm Uptime Monitor services (legacy) setup_systemd: service: "{{ item.item.key }}" cmd: "{{ item.item.value.cmd }}" user: "{{ swift_user }}" group: "{{ swift_group }}" args: " --config {{ swiftlm_uptime_monitor_conf_dir }}/{{ item.item.value.conf }}" when: item.changed with_items: "{{ swiftlm_uptime_monitor_install_result.results }}" 0707010000013C000081A40000000000000000000000015C7A0D8A000003EF000000000000000000000000000000000000005700000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-uptime-monitor/tasks/install.yml# # (c) Copyright 2015,2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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. # --- - name: swiftlm-uptime-monitor | install | Install (legacy) include: install-legacy.yml when: deployer_media_legacy_layout|bool - name: swiftlm-uptime-monitor | install | Install Swiftlm Uptime Monitor Services (rpm) become: yes package: name: ardana-swiftlm-uptime-mon state: present when: deployer_media_legacy_layout|bool == false 0707010000013D000081A40000000000000000000000015C7A0D8A000005C3000000000000000000000000000000000000005500000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-uptime-monitor/tasks/start.yml# # (c) Copyright 2015,2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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. # --- - include: _check_restart.yml - name: swiftlm-uptime-monitor | start | Activate the latest install install_package: name: swiftlm service: "{{ item.item.key }}" activate: act_on version: "{{ item.version }}" with_items: swiftlm_uptime_monitor_install_result.results when: swiftlm_uptime_monitor_install_result is defined and deployer_media_legacy_layout|bool - name: swiftlm-uptime-monitor | start | Restart the Swiftlm Uptime Monitor services service: name: "{{ item.key }}" state: restarted with_dict: "{{ swiftlm_uptime_monitor_services }}" when: swiftlm_uptime_monitor_restart_required - name: swiftlm-uptime-monitor | start | Start the Swiftlm Uptime Monitor services service: name: "{{ item.key }}" state: started with_dict: "{{ swiftlm_uptime_monitor_services }}" 0707010000013E000081A40000000000000000000000015C7A0D8A000002B8000000000000000000000000000000000000005600000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-uptime-monitor/tasks/status.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - include: ../../_SWF-CMN/tasks/_service_status.yml 0707010000013F000081A40000000000000000000000015C7A0D8A0000033C000000000000000000000000000000000000005400000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-uptime-monitor/tasks/stop.yml# # (c) Copyright 2015,2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - name: swiftlm-uptime-monitor | stop | Stop the Swiftlm Uptime Monitor services service: name={{ item.key }} state=stopped with_dict: "{{ swiftlm_uptime_monitor_services }}" 07070100000140000041ED0000000000000000000000025C7A0D8A00000000000000000000000000000000000000000000004F00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-uptime-monitor/templates07070100000141000081A40000000000000000000000015C7A0D8A000006F9000000000000000000000000000000000000006E00000000ardana-swift-8.0+git.1551502730.f4d219d/roles/swiftlm-uptime-monitor/templates/swiftlm-uptime-monitor.conf.j2{# # # (c) Copyright 2015,2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # #} [logging] # You can specify default log routing here if you want: log_level = info log_facility = LOG_LOCAL0 log_format = '%(name)s - %(levelname)s : %(message)s' [latency_monitor] # Time between each cycle interval: 60 # Number of operations to make each cycle. Make this larger # than number of proxy servers checks_per_interval: 40 # The directory where the uptime stats are stored swiftlm_uptime_monitor_cache_dir: {{ swiftlm_uptime_monitor_cache_dir }} #The file path where the uptime stats are written cache_file_path: {{ swiftlm_uptime_monitor_stats_file }} #You must specify both keystone_auth_url and object_store_url keystone_auth_url: {{ keystone_auth_url }}/v3 object_store_url: {{ object_store_url }} endpoint_type: {{ endpoint_type }} # project and user domain names project_domain_name = {{ keystone_default_domain }} user_domain_name = {{ keystone_default_domain }} # Credential information user_name: {{ swift_monitor_user }} password: {{ swift_monitor_password }} # Figure out how to get project_id, Not mandatory though project_id: project_name: {{ swift_monitor_tenant }} auth_version: {{ auth_version }} 07070100000142000081A40000000000000000000000015C7A0D8A00000736000000000000000000000000000000000000004600000000ardana-swift-8.0+git.1551502730.f4d219d/swift-compare-model-rings.yml# # (c) Copyright 2015,2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - hosts: - SWF-ACC - SWF-CON - SWF-OBJ roles: - osconfig-probe tasks: # We install osconfig-probe to allow us to run as early as possible, # though in practice osconfig-run.yml will already have run # (note: included file uses sudo, do no become:yes here) - include: roles/osconfig-probe/tasks/install.yml - probe: hostname={{ host.my_ardana_ansible_name }} become: yes - hosts: - SWF-ACC roles: - _SWF-RSY - swiftlm-ring-supervisor tasks: # We needs to install so this play can happen before swift-deploy.yml - include: roles/_SWF-CMN/tasks/install.yml become: yes - include: roles/_SWF-RSY/tasks/configure.yml become: yes - include: roles/swiftlm-ring-supervisor/tasks/configure.yml become: yes - hosts: - SWF-ACC roles: - _SWF-RSY tasks: # Do rsync start here in case above play triggers a restart - include: roles/_SWF-RSY/tasks/start.yml become: yes - hosts: - SWF-ACC--first-member roles: - swiftlm-ring-supervisor tasks: - include: roles/swiftlm-ring-supervisor/tasks/sync_from_backup.yml become: yes - include: roles/swiftlm-ring-supervisor/tasks/validate-input-model.yml become: yes 07070100000143000081A40000000000000000000000015C7A0D8A000009FB000000000000000000000000000000000000004400000000ardana-swift-8.0+git.1551502730.f4d219d/swift-configure-monasca.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- # The monasca agent tasks need to run after swift has started - hosts: SWF-PRX:SWF-ACC:SWF-CON:SWF-OBJ:&MON-AGN no_log: True roles: - {role: monasca-agent, run_mode: Use} - swift-monitor - swiftlm-aggregate - access-tailer tasks: - set_fact: # Metrics files for the server running the uptime monitor metrics_files: "{{ swiftlm_uptime_monitor_stats_file }},{{ swiftlm_aggregated_metrics }},{{ access_tailer_metrics }},{{ swiftlm_scan_metrics }}" when: swiftlm_uptime_monitor_enabled is defined - set_fact: # Metrics files for all swift proxy servers except the server running the uptime monitor metrics_files: "{{ swiftlm_scan_metrics }},{{ access_tailer_metrics }}" when: host.bind.SWF_PRX is defined and swiftlm_uptime_monitor_enabled is not defined - set_fact: # Metrics files for all swift server except the swift proxy servers metrics_files: "{{ swiftlm_scan_metrics }}" when: host.bind.SWF_PRX is not defined - include: roles/swift-monitor/tasks/monasca_custom_plugins.yml become: yes - include: roles/swift-monitor/tasks/monasca_agents.yml become: yes vars: swiftlm_check_metrics_files: "{{ metrics_files }}" - hosts: SWF-PRX:&MON-AGN no_log: True roles: - {role: monasca-agent, run_mode: Use} - monasca-alarm-definition - swift-monitor tasks: - include: roles/swift-monitor/tasks/monasca_alarms.yml become: yes - hosts: SWF-PRX:&MON-AGN roles: - SWF-PRX tasks: - include: roles/SWF-PRX/tasks/local_monitor.yml - hosts: SWF-ACC:&MON-AGN roles: - SWF-ACC tasks: - include: roles/SWF-ACC/tasks/local_monitor.yml - hosts: SWF-CON:&MON-AGN roles: - SWF-CON tasks: - include: roles/SWF-CON/tasks/local_monitor.yml - hosts: SWF-OBJ:&MON-AGN roles: - SWF-OBJ tasks: - include: roles/SWF-OBJ/tasks/local_monitor.yml 07070100000144000081A40000000000000000000000015C7A0D8A000003AB000000000000000000000000000000000000003900000000ardana-swift-8.0+git.1551502730.f4d219d/swift-deploy.yml# # (c) Copyright 2015,2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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. # --- - include: pbstart.yml vars: playbook_name: "swift-deploy.yml" - include: ses-deploy.yml - include: _swift-install.yml - include: swift-update-from-model-rebalance-rings.yml - include: swift-reconfigure.yml - include: pbfinish.yml vars: playbook_name: "swift-deploy.yml" 07070100000145000081A40000000000000000000000015C7A0D8A00000348000000000000000000000000000000000000004600000000ardana-swift-8.0+git.1551502730.f4d219d/swift-dispersion-populate.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - hosts: SWF-PRX--first-member roles: - swift-dispersion tasks: - include: roles/swift-dispersion/tasks/configure.yml become: yes - include: roles/swift-dispersion/tasks/populate.yml 07070100000146000081A40000000000000000000000015C7A0D8A0000034B000000000000000000000000000000000000004400000000ardana-swift-8.0+git.1551502730.f4d219d/swift-dispersion-report.yml# # (c) Copyright 2015,2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - hosts: SWF-PRX--first-member roles: - swift-dispersion tasks: - include: roles/swift-dispersion/tasks/configure.yml become: yes - include: roles/swift-dispersion/tasks/report.yml 07070100000147000081A40000000000000000000000015C7A0D8A0000048E000000000000000000000000000000000000005100000000ardana-swift-8.0+git.1551502730.f4d219d/swift-reconfigure-credentials-change.yml# # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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. # --- - include: ses-reconfigure.yml - include: _swift-configure.yml - hosts: SWF-PRX--first-member roles: - swiftlm-uptime-monitor tasks: - include: roles/swiftlm-uptime-monitor/tasks/configure.yml become: yes - hosts: SWF-PRX roles: - swift-post-configure # This task should be set to run-once tasks: - include: roles/swift-post-configure/tasks/keystone_change_pwd.yml ansible_python_interpreter: "{{ KEY_CLI.vars.keystone_client_python_interpreter }}" - include: swift-start.yml 07070100000148000081A40000000000000000000000015C7A0D8A0000030F000000000000000000000000000000000000003E00000000ardana-swift-8.0+git.1551502730.f4d219d/swift-reconfigure.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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. # --- - include: ses-reconfigure.yml - include: _swiftlm-provision.yml - include: _swift-configure.yml - include: _swift-post-configure.yml 07070100000149000081A40000000000000000000000015C7A0D8A00000287000000000000000000000000000000000000003A00000000ardana-swift-8.0+git.1551502730.f4d219d/swift-restart.yml# # (c) Copyright 2018 SUSE LLC # # 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. # --- - include: _swift-schedule-restart.yml - include: swift-start.yml 0707010000014A000081A40000000000000000000000015C7A0D8A00000605000000000000000000000000000000000000003800000000ardana-swift-8.0+git.1551502730.f4d219d/swift-start.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - hosts: SWF-RSY roles: - _SWF-RSY tasks: - include: roles/_SWF-RSY/tasks/start.yml become: yes - hosts: SWF-PRX roles: - SWF-PRX - access-tailer tasks: - include: roles/SWF-PRX/tasks/start.yml become: yes - include: roles/access-tailer/tasks/start.yml become: yes - hosts: SWF-ACC roles: - SWF-ACC tasks: - include: roles/SWF-ACC/tasks/start.yml become: yes - hosts: SWF-CON roles: - SWF-CON tasks: - include: roles/SWF-CON/tasks/start.yml become: yes - hosts: SWF-OBJ roles: - SWF-OBJ tasks: - include: roles/SWF-OBJ/tasks/start.yml become: yes - hosts: SWF-OBJ--first-member roles: - SWF-EXP tasks: - include: roles/SWF-EXP/tasks/start.yml become: yes - hosts: SWF-PRX--first-member roles: - swiftlm-uptime-monitor tasks: - include: roles/swiftlm-uptime-monitor/tasks/start.yml become: yes 0707010000014B000081A40000000000000000000000015C7A0D8A000005E0000000000000000000000000000000000000003900000000ardana-swift-8.0+git.1551502730.f4d219d/swift-status.yml# # (c) Copyright 2015,2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - hosts: SWF-PRX max_fail_percentage: 0 roles: - SWF-PRX tasks: - include: roles/SWF-PRX/tasks/status.yml become: yes - hosts: SWF-ACC max_fail_percentage: 0 roles: - SWF-ACC tasks: - include: roles/SWF-ACC/tasks/status.yml become: yes - hosts: SWF-CON max_fail_percentage: 0 roles: - SWF-CON tasks: - include: roles/SWF-CON/tasks/status.yml become: yes - hosts: SWF-OBJ max_fail_percentage: 0 roles: - SWF-OBJ tasks: - include: roles/SWF-OBJ/tasks/status.yml become: yes - hosts: SWF-OBJ--first-member max_fail_percentage: 0 roles: - SWF-EXP tasks: - include: roles/SWF-OBJ/tasks/status.yml become: yes - hosts: SWF-PRX--first-member max_fail_percentage: 0 roles: - swiftlm-uptime-monitor tasks: - include: roles/swiftlm-uptime-monitor/tasks/status.yml become: yes 0707010000014C000081A40000000000000000000000015C7A0D8A000005FC000000000000000000000000000000000000003700000000ardana-swift-8.0+git.1551502730.f4d219d/swift-stop.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - hosts: SWF-RSY roles: - _SWF-RSY tasks: - include: roles/_SWF-RSY/tasks/stop.yml become: yes - hosts: SWF-PRX roles: - SWF-PRX - access-tailer tasks: - include: roles/SWF-PRX/tasks/stop.yml become: yes - include: roles/access-tailer/tasks/stop.yml become: yes - hosts: SWF-ACC roles: - SWF-ACC tasks: - include: roles/SWF-ACC/tasks/stop.yml become: yes - hosts: SWF-CON roles: - SWF-CON tasks: - include: roles/SWF-CON/tasks/stop.yml become: yes - hosts: SWF-OBJ roles: - SWF-OBJ tasks: - include: roles/SWF-OBJ/tasks/stop.yml become: yes - hosts: SWF-OBJ--first-member roles: - SWF-EXP tasks: - include: roles/SWF-EXP/tasks/stop.yml become: yes - hosts: SWF-PRX--first-member roles: - swiftlm-uptime-monitor tasks: - include: roles/swiftlm-uptime-monitor/tasks/stop.yml become: yes 0707010000014D000081A40000000000000000000000015C7A0D8A000005FF000000000000000000000000000000000000005400000000ardana-swift-8.0+git.1551502730.f4d219d/swift-update-from-model-rebalance-rings.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - hosts: - SWF-ACC - SWF-CON - SWF-OBJ roles: - osconfig-probe tasks: - probe: hostname={{ host.my_ardana_ansible_name }} become: yes - hosts: - SWF-ACC roles: - _SWF-RSY - swiftlm-ring-supervisor tasks: - include: roles/_SWF-RSY/tasks/configure.yml become: yes - include: roles/swiftlm-ring-supervisor/tasks/configure.yml become: yes - hosts: - SWF-ACC roles: - _SWF-RSY tasks: # Do rsync start here in case above play triggers a restart - include: roles/_SWF-RSY/tasks/start.yml become: yes - hosts: - SWF-ACC--first-member roles: - swiftlm-ring-supervisor tasks: - include: roles/swiftlm-ring-supervisor/tasks/sync_from_backup.yml become: yes - include: roles/swiftlm-ring-supervisor/tasks/build-rings.yml become: yes - include: roles/swiftlm-ring-supervisor/tasks/sync_to_backup.yml become: yes 0707010000014E000081A40000000000000000000000015C7A0D8A0000031A000000000000000000000000000000000000003A00000000ardana-swift-8.0+git.1551502730.f4d219d/swift-upgrade.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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. # --- #- include: swift-status.yml - include: ses-deploy.yml - include: _swift-install.yml - include: swift-reconfigure.yml - include: swift-status.yml 0707010000014F000081A40000000000000000000000015C7A0D8A0000036E000000000000000000000000000000000000004300000000ardana-swift-8.0+git.1551502730.f4d219d/swiftlm-uptime-monitor.yml# # (c) Copyright 2015,2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - hosts: SWF-PRX--first-member roles: - swiftlm-uptime-monitor tasks: - include: roles/swiftlm-uptime-monitor/tasks/install.yml become: yes - include: roles/swiftlm-uptime-monitor/tasks/configure.yml become: yes 07070100000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000B00000000TRAILER!!!811 blocks
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor