File ardana-cinder-8.0+git.1596129856.263f430.obscpio of Package ardana-cinder

07070100000000000081A40000000000000000000000015F230240000000B3000000000000000000000000000000000000003A00000000ardana-cinder-8.0+git.1596129856.263f430/.copyrightignoreardana-ci/tests/cinder_volume_run_location_ccp.fact
ardana-ci/tests/cinder_backend_assignment.fact
roles/CND-API/templates/api-paste.ini.j2
roles/CND-API/templates/policy.json.j2
07070100000001000081A40000000000000000000000015F23024000000082000000000000000000000000000000000000003400000000ardana-cinder-8.0+git.1596129856.263f430/.gitreview[gerrit]
host=gerrit.suse.provo.cloud
port=29418
project=ardana/cinder-ansible.git
defaultremote=ardana
defaultbranch=stable/pike
07070100000002000081A40000000000000000000000015F2302400000000C000000000000000000000000000000000000003700000000ardana-cinder-8.0+git.1596129856.263f430/.rsync-filter- ardana-ci
07070100000003000081A40000000000000000000000015F2302400000279F000000000000000000000000000000000000003100000000ardana-cinder-8.0+git.1596129856.263f430/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.

07070100000004000081A40000000000000000000000015F23024000000BB1000000000000000000000000000000000000003300000000ardana-cinder-8.0+git.1596129856.263f430/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 cinder repo will have the following roles:
- CND-VOL
- CND-API
- CND-SCH
- CND-BCK

In time the role names, specified in the configuration processor will change
to: cinder-volume, cinder-api, cinder-scheduler and cinder-backup.

The service verbs are:
- install
- configure
- start
- stop

An example of the cinder-ansible structure:
```
└── cinder-ansible
    ├── filter_plugins
    ├── library
    ├── README.md
    └── roles
        ├── cinder
        │   ├── defaults
        │   ├── files
        │   ├── handlers
        │   ├── meta
        │   ├── tasks
        │   │   └── cinder-deploy.yml
        │   ├── templates
        │   └── vars
        ├── cinder-volume
        │   ├── defaults
        │   ├── files
        │   ├── handlers
        │   ├── meta
        │   ├── tasks
        │   │   ├── configure.yml
        │   │   ├── install.yml
        │   │   └── start.yml
        │   ├── templates
        │   └── vars
        ├── cinder-api
        │   ├── defaults
        │   ├── files
        │   ├── handlers
        │   ├── meta
        │   ├── tasks
        │   │   ├── configure.yml
        │   │   ├── install.yml
        │   │   └── start.yml
        │   ├── templates
        │   └── vars
        ├── cinder-scheduler
        │   ├── defaults
        │   ├── files
        │   ├── handlers
        │   ├── meta
        │   ├── tasks
        │   │   ├── configure.yml
        │   │   ├── install.yml
        │   │   └── start.yml
        │   ├── templates
        │   └── vars
        └── cinder-backup
            ├── defaults
            ├── files
            ├── handlers
            ├── meta
            ├── tasks
            │   ├── configure.yml
            │   ├── install.yml
            │   └── start.yml
            ├── templates
            └── vars
 
```
07070100000005000081A40000000000000000000000015F23024000000736000000000000000000000000000000000000003F00000000ardana-cinder-8.0+git.1596129856.263f430/_cinder-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.
#
---

- hosts: CND-VOL:CND-API:CND-SCH:CND-BCK
  roles:
    - CND-VOL
  tasks:
    - include: roles/CND-VOL/tasks/validate-config.yml

- hosts: CND-VOL:CND-API:CND-SCH:CND-BCK:!LOG-PRO
  roles:
    - _CND-CMN
  tasks:
    - include: roles/_CND-CMN/tasks/logrotate-configure.yml

- hosts: CND-API
  become: yes
  roles:
    - CND-API
  tasks:
    - include: roles/CND-API/tasks/keystone_conf.yml
      ansible_python_interpreter: >
        {{ KEY_CLI.vars.keystone_client_python_interpreter }}
    - include: roles/CND-API/tasks/keystone_get_conf.yml
      ansible_python_interpreter: >
        {{ KEY_CLI.vars.keystone_client_python_interpreter }}

- hosts: CND-API
  roles:
    - CND-API
  tasks:
    - include: roles/CND-API/tasks/configure.yml

- hosts: CND-API
  become: yes
  roles:
    - CND-API
  tasks:
    - include: roles/CND-API/tasks/db_configure.yml

- hosts: CND-SCH
  become: yes
  roles:
    - CND-SCH
  tasks:
    - include: roles/CND-SCH/tasks/configure.yml

- hosts: CND-VOL
  become: yes
  roles:
    - CND-VOL
  tasks:
    - include: roles/CND-VOL/tasks/configure.yml

- hosts: CND-BCK
  become: yes
  roles:
    - CND-BCK
  tasks:
    - include: roles/CND-BCK/tasks/configure.yml

07070100000006000081A40000000000000000000000015F230240000004B6000000000000000000000000000000000000003D00000000ardana-cinder-8.0+git.1596129856.263f430/_cinder-install.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: CND-API
  become: yes
  roles:
    - CND-API
  tasks:
    - include: roles/CND-API/tasks/install.yml

- hosts: CND-SCH
  become: yes
  roles:
    - CND-SCH
  tasks:
    - include: roles/CND-SCH/tasks/install.yml

- hosts: CND-VOL
  become: yes
  roles:
    - CND-VOL
  tasks:
    - include: roles/CND-VOL/tasks/install.yml

- hosts: CND-BCK
  become: yes
  roles:
    - CND-BCK
  tasks:
    - include: roles/CND-BCK/tasks/install.yml

- hosts: CND-VOL:NOV-CMP
  become: yes
  roles:
    - CND-SVC
  tasks:
    - include: roles/CND-SVC/tasks/install.yml
07070100000007000081A40000000000000000000000015F23024000000471000000000000000000000000000000000000003E00000000ardana-cinder-8.0+git.1596129856.263f430/_cinder-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.
#
---

- hosts: CND-API
  become: yes
  roles:
    - CND-API
  tasks:
    - include: roles/CND-API/tasks/populate.yml

- hosts: CND-SCH
  become: yes
  roles:
    - CND-SCH
  tasks:
    - include: roles/CND-SCH/tasks/populate.yml

- hosts: CND-VOL
  become: yes
  roles:
    - CND-VOL
  tasks:
    - include: roles/CND-VOL/tasks/populate.yml

- hosts: CND-BCK
  become: yes
  roles:
    - CND-BCK
  tasks:
    - include: roles/CND-BCK/tasks/populate.yml

- include: cinder-configure-monasca.yml
07070100000008000081A40000000000000000000000015F230240000002E1000000000000000000000000000000000000004600000000ardana-cinder-8.0+git.1596129856.263f430/_cinder-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 cinder services using ardana_notify_... variables
- hosts: all
  tasks:
    - include: roles/_CND-CMN/tasks/_schedule_restart.yml07070100000009000081A40000000000000000000000015F230240000002F7000000000000000000000000000000000000004000000000ardana-cinder-8.0+git.1596129856.263f430/_cinder_post_check.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: CND-API[0]
  become: yes
  roles:
  - _CND-CMN

  tasks:
  - include: roles/_CND-CMN/tasks/api_status.yml
0707010000000A000041ED0000000000000000000000065F23024000000000000000000000000000000000000000000000003300000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci0707010000000B000041ED0000000000000000000000035F23024000000000000000000000000000000000000000000000005400000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci/cp1-shared-cp2-cinder-cp3-cinder0707010000000C000041ED0000000000000000000000035F23024000000000000000000000000000000000000000000000006000000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci/cp1-shared-cp2-cinder-cp3-cinder/input-model0707010000000D000041ED0000000000000000000000035F23024000000000000000000000000000000000000000000000006500000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci/cp1-shared-cp2-cinder-cp3-cinder/input-model/data0707010000000E000081A40000000000000000000000015F23024000001637000000000000000000000000000000000000007700000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci/cp1-shared-cp2-cinder-cp3-cinder/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:
            - 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: ctrl-cp1
          cluster-prefix: c1
          server-role:
              - CP1-CONTROLLER-ROLE
          member-count: 1
          allocation-policy: strict
          service-components:
            - lifecycle-manager
            - lifecycle-manager-target
            - ntp-server
            - mysql
            - ip-cluster
            - keystone-api
            - rabbitmq
            - memcached
            - cinder-client
            - swift-proxy
            - swift-account
            - swift-container
            - swift-object
            - swift-ring-builder
            - swift-client
            - glance-api:
                ha_mode: false
                glance_stores: 'file'
                glance_default_store: 'file'
            - glance-registry

    - name: cp2
      control-plane-prefix: cp2
      uses:
        - from: cp1
          service-components:
            - all
      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
            - nova-metadata
          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: ctrl-cp2
          cluster-prefix: c2
          server-role:
              - CP2-CONTROLLER-ROLE
          member-count: 3
          allocation-policy: strict
          service-components:
            - mysql
            - rabbitmq
            - ip-cluster
            - cinder-api
            - cinder-scheduler
            - cinder-volume
            - cinder-backup
            - cinder-client
            - nova-api
            - nova-scheduler
            - nova-conductor
            - nova-console-auth
            - nova-novncproxy
            - neutron-server
            - neutron-ml2-plugin
            - neutron-vpn-agent
            - neutron-dhcp-agent
            - neutron-metadata-agent
            - neutron-openvswitch-agent

      resources:
        - name: compute
          resource-prefix: comp
          server-role: CP2-COMPUTE-ROLE
          allocation-policy: any
          service-components:
            - nova-compute-kvm
            - nova-compute
            - neutron-l3-agent
            - neutron-metadata-agent
            - neutron-openvswitch-agent
            - neutron-lbaasv2-agent

    - name: cp3
      control-plane-prefix: cp3
      uses:
        - from: cp1
          service-components:
            - all
      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
            - nova-metadata
          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: ctrl-cp3
          cluster-prefix: c3
          server-role:
              - CP3-CONTROLLER-ROLE
          member-count: 2
          allocation-policy: strict
          service-components:
            - mysql
            - rabbitmq
            - ip-cluster
            - cinder-api
            - cinder-scheduler
            - cinder-volume
            - cinder-backup
            - cinder-client
            - nova-api
            - nova-scheduler
            - nova-conductor
            - nova-console-auth
            - nova-novncproxy
            - neutron-server
            - neutron-ml2-plugin
            - neutron-vpn-agent
            - neutron-dhcp-agent
            - neutron-metadata-agent
            - neutron-openvswitch-agent
0707010000000F000081A40000000000000000000000015F23024000000B06000000000000000000000000000000000000006F00000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci/cp1-shared-cp2-cinder-cp3-cinder/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: CONTROLLER-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
        consumer:
          name: swift
          attrs:
            rings:
              - account
              - container
              - object-0
      - name: cinder-volume
        devices:
          - name: /dev/sde
        consumer:
          name: cinder
  - name: COMPUTE-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: 65%
            fstype: ext4
            mount: /
          - name: log
            size: 15%
            mount: /var/log
            fstype: ext4
            mkfs-opts: -O large_file
          - name: crash
            size: 15%
            mount: /var/crash
            fstype: ext4
            mkfs-opts: -O large_file

07070100000010000081A40000000000000000000000015F23024000000519000000000000000000000000000000000000007800000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci/cp1-shared-cp2-cinder-cp3-cinder/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:
    - 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

07070100000011000081A40000000000000000000000015F230240000003FF000000000000000000000000000000000000007100000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci/cp1-shared-cp2-cinder-cp3-cinder/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

07070100000012000081A40000000000000000000000015F230240000004B4000000000000000000000000000000000000007600000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci/cp1-shared-cp2-cinder-cp3-cinder/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: CP1-CONTROLLER-ROLE
      interface-model: NET-INTERFACES
      disk-model: CONTROLLER-DISKS

    - name: CP2-CONTROLLER-ROLE
      interface-model: NET-INTERFACES
      disk-model: CONTROLLER-DISKS

    - name: CP3-CONTROLLER-ROLE
      interface-model: NET-INTERFACES
      disk-model: CONTROLLER-DISKS

    - name: CP2-COMPUTE-ROLE
      interface-model: NET-INTERFACES
      disk-model: COMPUTE-DISKS

    - name: CP3-COMPUTE-ROLE
      interface-model: NET-INTERFACES
      disk-model: COMPUTE-DISKS
07070100000013000081A40000000000000000000000015F230240000009C0000000000000000000000000000000000000007100000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci/cp1-shared-cp2-cinder-cp3-cinder/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: CP1-CONTROLLER-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: CP2-CONTROLLER-ROLE
      server-group: RACK1
      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: CP2-CONTROLLER-ROLE
      server-group: RACK2
      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: CP2-CONTROLLER-ROLE
      server-group: RACK3
      mac-addr: 8a:8e:64:55:43: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: CP3-CONTROLLER-ROLE
      server-group: RACK1
      mac-addr: 8a:8e:64:55:43:78
      nic-mapping: VAGRANT
      ilo-ip: 192.168.109.7
      ilo-password: password
      ilo-user: admin

    - id: server6
      ip-addr: 192.168.110.8
      role: CP3-CONTROLLER-ROLE
      server-group: RACK2
      mac-addr: 8a:8e:64:55:43:79
      nic-mapping: VAGRANT
      ilo-ip: 192.168.109.8
      ilo-password: password
      ilo-user: admin

    - id: server7
      ip-addr: 192.168.110.30
      role: CP2-COMPUTE-ROLE
      server-group: RACK1
      nic-mapping: VAGRANT
      mac-addr: a0:00:00:00:00:30
      ilo-ip: 192.168.109.12
      ilo-user: admin
      ilo-password: password
07070100000014000041ED0000000000000000000000025F23024000000000000000000000000000000000000000000000006B00000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci/cp1-shared-cp2-cinder-cp3-cinder/input-model/data/swift07070100000015000081A40000000000000000000000015F23024000000609000000000000000000000000000000000000007C00000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci/cp1-shared-cp2-cinder-cp3-cinder/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
07070100000016000041ED0000000000000000000000035F23024000000000000000000000000000000000000000000000003B00000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci/project07070100000017000041ED0000000000000000000000035F23024000000000000000000000000000000000000000000000004700000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci/project/input-model07070100000018000041ED0000000000000000000000045F23024000000000000000000000000000000000000000000000004C00000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci/project/input-model/data07070100000019000041ED0000000000000000000000025F23024000000000000000000000000000000000000000000000005300000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci/project/input-model/data/cinder0707010000001A000081A40000000000000000000000015F230240000006D6000000000000000000000000000000000000006500000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci/project/input-model/data/cinder/cinder_config.yml#
# (c) Copyright 2016-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: CINDER-CONFIG-CP1
      services:
        - cinder
      data:
        LVM1-CONFIG-CP1:
          volume-types:
            - thin
          failure-zone:
            - AZ1
          backend-config:
              volume_group: cinder-volumes
              lvm_type: thin
              volume_driver: cinder.volume.drivers.lvm.LVMVolumeDriver
              volume_backend_name: LVM_iSCSI_1
        LVM2-CONFIG-CP1:
          volume-types:
            - thin
          failure-zone:
            - AZ2
          backend-config:
              volume_group: cinder-volumes
              lvm_type: thin
              volume_driver: cinder.volume.drivers.lvm.LVMVolumeDriver
              volume_backend_name: LVM_iSCSI_2
        LVM3-CONFIG-CP1:
          volume-types:
            - thin
          failure-zone:
            - AZ3
          backend-config:
              volume_group: cinder-volumes
              lvm_type: thin
              volume_driver: cinder.volume.drivers.lvm.LVMVolumeDriver
              volume_backend_name: LVM_iSCSI_3
0707010000001B000081A40000000000000000000000015F23024000000AB5000000000000000000000000000000000000005E00000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci/project/input-model/data/control_plane.yml#
# (c) Copyright 2016-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

  control-planes:
    - name: ccp
      control-plane-prefix: ccp
      region-name: region1
      failure-zones:
        - AZ1
        - AZ2
        - AZ3
      configuration-data:
        - CINDER-CONFIG-CP1
      common-service-components:
        - lifecycle-manager-target
        - monasca-agent

      clusters:
        - name: cluster0
          cluster-prefix: deployer
          server-role:
            - DEPLOYER-ROLE
          member-count: 1
          allocation-policy: strict
          service-components:
            - lifecycle-manager
            - ntp-client
            - openstack-client
            - tempest
            - cinder-client
            - swift-client
            - monasca-client

        - name: cluster1
          cluster-prefix: monasca
          server-role:
            - MONASCA-ROLE
          member-count: 1
          allocation-policy: strict
          service-components:
            - ntp-client
            # monasca
            - kafka
            - zookeeper
            - vertica
            - monasca-api
            - monasca-persister
            # memcached required for swift
            - memcached

        - name: cluster2
          cluster-prefix: db-rmq-key
          server-role:
            - MYSQL-RMQ-KEYSTONE-ROLE
          member-count: 1
          allocation-policy: strict
          service-components:
            - ntp-server
            - mysql
            - rabbitmq
            - keystone-client
            - keystone-api

        - name: cluster3
          cluster-prefix: controller
          server-role:
            - CONTROLLER-ROLE
          member-count: 3
          allocation-policy: strict
          service-components:
            - ntp-client
            - cinder-api
            - cinder-scheduler
            - cinder-volume
            - cinder-backup
            - cinder-client
            - ip-cluster
            - swift-ring-builder
            - swift-proxy
            - swift-account
            - swift-container
            - swift-object
            - swift-client
0707010000001C000081A40000000000000000000000015F23024000000789000000000000000000000000000000000000005600000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci/project/input-model/data/disks.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

  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/sdc
          - name: /dev/sdd
        consumer:
          name: swift
          attrs:
            rings:
              - account
              - container
              - object-0
      - name: cinder-volume
        devices:
          - name: /dev/sde
        consumer:
          name: cinder
0707010000001D000081A40000000000000000000000015F23024000000404000000000000000000000000000000000000005D00000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci/project/input-model/data/server_roles.yml#
# (c) Copyright 2016-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

server-roles:

  - name: DEPLOYER-ROLE
    interface-model: NET-INTERFACES
    disk-model: DISKS

  - name: MONASCA-ROLE
    interface-model: NET-INTERFACES
    disk-model: DISKS

  - name: MYSQL-RMQ-KEYSTONE-ROLE
    interface-model: NET-INTERFACES
    disk-model: DISKS

  - name: CONTROLLER-ROLE
    interface-model: NET-INTERFACES
    disk-model: DISKS
0707010000001E000081A40000000000000000000000015F230240000008BB000000000000000000000000000000000000005800000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci/project/input-model/data/servers.yml#
# (c) Copyright 2016-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

  baremetal:
    netmask: 255.255.255.0
    subnet: 192.168.110.0
    server-interface: eth2

  servers:

    - id: server1
      ip-addr: 192.168.110.3
      role: DEPLOYER-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: MONASCA-ROLE
      server-group: RACK1
      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: MYSQL-RMQ-KEYSTONE-ROLE
      server-group: RACK2
      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: CONTROLLER-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

    - id: server5
      ip-addr: 192.168.110.7
      role: CONTROLLER-ROLE
      server-group: RACK1
      mac-addr: d6:70:c1:36:43:f7
      nic-mapping: VAGRANT
      ilo-ip: 192.168.109.7
      ilo-password: password
      ilo-user: admin

    - id: server6
      ip-addr: 192.168.110.8
      role: CONTROLLER-ROLE
      server-group: RACK2
      mac-addr: 8e:8e:62:a6:ce:76
      nic-mapping: VAGRANT
      ilo-ip: 192.168.109.8
      ilo-password: password
      ilo-user: admin
0707010000001F000041ED0000000000000000000000025F23024000000000000000000000000000000000000000000000005200000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci/project/input-model/data/swift07070100000020000081A40000000000000000000000015F2302400000055C000000000000000000000000000000000000005C00000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci/project/input-model/data/swift/rings.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

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
07070100000021000041ED0000000000000000000000025F23024000000000000000000000000000000000000000000000003900000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci/tests07070100000022000081A40000000000000000000000015F23024000000679000000000000000000000000000000000000004300000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci/tests/README.md
(c) Copyright 2016-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.


README
======

This directory contains the test-plan that executes the playbooks and test
scripts during the project specific CI job for cinder-ansible.

To run test-plan.yml locally on your own test environment:

cd ~/ardana-dev-tools/ardana-vagrant-models/project-vagrant
../../bin/test-project-stack.sh --ci ardana/cinder-ansible

The cinder-ansible playbooks are tested with two different storage
backend configurations:
- New Storage Input Model
- Jinja2 Configuration

After test-plan.yml has completed, the storage backends will be
configured with Jinja2. To revert back to the original Storage Input
Model configuration, ssh to the deployer (server1) and run the
revert-to-storage-input-model.bash script in ~/ardana-ci-tests/.

Node Hostname Reference:
- server1     project-ccp-deployer-m1-ardana
- server2     project-ccp-monasca-m1-ardana
- server3     project-ccp-db-rmq-key-m1-ardana
- server4     project-ccp-controller-m3-ardana
- server5     project-ccp-controller-m1-ardana
- server6     project-ccp-controller-m2-ardana
07070100000023000081A40000000000000000000000015F23024000003CD1000000000000000000000000000000000000004800000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci/tests/cinder.conf.j2{#
#
# (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.
#
#}

[DEFAULT]

# Print debugging output (set logging level to DEBUG instead
# of default WARNING level). (boolean value)
debug={{ cinder_debug }}

enable_v3_api=True

osapi_volume_listen = {{ cinder_osapi_volume_listen }}
osapi_volume_listen_port = {{ cinder_osapi_volume_listen_port }}
{% if cinder_glance_url is defined %}
glance_api_servers = {{ cinder_glance_url }}
{% endif %}
{% if cinder_backup_swift_url is defined and cinder_backup_swift_url %}
backup_swift_url = {{ cinder_backup_swift_url }}
swift_catalog_info = object-store:swift:internalURL
{% endif %}
{% if cinder_volume_nova_url is defined %}
nova_endpoint_template = {{ cinder_volume_nova_url }}/%(project_id)s
nova_endpoint_admin_template = {{ cinder_volume_nova_url }}/%(project_id)s
os_region_name = {{ cinder_keystone.region_name }}
nova_catalog_info = compute:nova:internalURL
nova_catalog_admin_info = compute:nova:adminURL
{% endif %}

{% block api_paste_config %}
# Versioned api-paste.ini specified where appropriate.
#api_paste_config = /etc/cinder/api-paste.ini
{% endblock api_paste_config %}

auth_strategy = keystone

state_path = {{ cinder_state_path }}
{% if cinder_image_conversion_dir is defined %}
image_conversion_dir={{ cinder_image_conversion_dir }}
{% endif %}

iscsi_helper={{ cinder_iscsi_helper }}


{% if cinder_public_endpoint is defined %}
# Uncomment to set the public API in the links responses
#public_endpoint = {{ cinder_public_endpoint }}
#osapi_volume_base_URL = {{ cinder_public_endpoint }}
{% endif %}
# behind haproxy record the X-Forward-For source in the logfile
use_forwarded_for = True


control_exchange = {{ cinder_control_exchange }}
rpc_response_timeout = 120

# Common hostname to avoid singleton limitation of Cinder volume manager
host = ha-volume-manager

{% if ((cinderinternal_project_id is defined) and (cinderinternal_user_id is defined)) %}
# Cinder internal project id and user id for volume image cache
cinder_internal_tenant_project_id = {{ cinderinternal_project_id }}
cinder_internal_tenant_user_id = {{ cinderinternal_user_id }}
# To enable volume image caching the image_volume_cache_enabled flag needs to
# be set to True in the relevant backend section in cinder.conf
{% endif %}

{% if my_enabled_backends.cinder_enabled_backends is not defined %}

# Configure the enabled backends
enabled_backends=lvm-1

[lvm-1]
volume-group = cinder-volumes
lvm_type = thin
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volume_backend_name = LVM_iSCSI

{%- if cinder_lvm_device_group %},lvm-1{% endif %}

{% endif %}

# Configure the enabled backends, above left for convenience, until upgrade
# process is finalised.
{% if my_enabled_backends.cinder_enabled_backends is defined %}
enabled_backends={{ my_enabled_backends.cinder_enabled_backends[inventory_hostname]|join(", ") }}

{% for be in my_enabled_backends.cinder_backend_configs %}
[{{ be['name'] }}]
{% for conf in be['config'] %}
{{ conf }}={{ be['config'][conf] }}
{% endfor %}

{% endfor %}
{% endif %}

{% if cinder_keymgr_fixed_key is defined %}
[keymgr]
fixed_key = {{ cinder_keymgr_fixed_key }}
{% elif cinder_keymgr_url is defined and cinder_keymgr_url != "" %}
[keymgr]
api_class = cinder.keymgr.barbican.BarbicanKeyManager
encryption_auth_url = {{ cinder_keystone.internal_url }}/v3
encryption_api_url = {{ cinder_keymgr_url }}/v1
{% endif %}

[keystone_authtoken]
auth_uri = {{ cinder_keystone.identity_admin_url }}

[database]
connection={{ cinder_db }}
max_overflow={{ cinder_max_overflow }}
max_pool_size={{ cinder_max_pool_size }}
min_pool_size={{ cinder_min_pool_size }}

[oslo_messaging_notifications]
driver = {{ cinder_notification_driver }}

[oslo_messaging_rabbit]
rabbit_ha_queues=False
rabbit_hosts = {{ cinder_rabbit_hosts }}
rabbit_password = {{ cinder_rabbit_password }}
rabbit_use_ssl = {{ cinder_rabbit_use_ssl }}
rabbit_userid = {{ cinder_rabbit_userid }}

[oslo_middleware]
enable_proxy_headers_parsing = true

[oslo_concurrency]
lock_path = /var/lib/cinder

{% block audit_middleware %}{% endblock audit_middleware %}
{% if cinder_lvm_device_group %}
# LVM thin provision. This way we don't dd the disk
[lvm-1]
volume-group = cinder-volumes
lvm_type = thin
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volume_backend_name = LVM_iSCSI
iscsi_ip_address = {{ cinder_osapi_volume_listen }}
{% endif %}

# Start of section for StoreVirtual (VSA) cluster
#
# If you have configured StoreVirtual backend storage for cinder you
# must uncomment this section, and replace all strings in angle
# brackets with the correct values for the cluster you have
# configured.  You must also add the section name to the list of
# values in the 'enabled_backends' variable above.
#
# If you have more than one StoreVirtual cluster you must provide this
# whole section for each cluster and provide a unique section name for
# each cluster. For example, replace <unique-section-name> with
# VSA_CLUSTER_1 for one cluster and VSA_CLUSTER_2 for the other.
#
# Note, if you want to group more than one cluster under a single
# cinder backend then you can give the same value to <vsa-backend-name>
# in sections for several clusters.
#
# Use this model if the StoreVirtual Storage array is running LeftHand OS
# version 11 or higer
#
#[<unique-section-name>]
# If adding a password here, then the password can be encrypted using the
# mechanism specified in the documentation.  If the password has been encrypted
# add the value and the openstack_user_password_decrypt filter like so:
#hplefthand_password = {{ '<encrypted vsa-cluster-password>' | openstack_user_password_decrypt }}
# Note that the encrypted value has to be enclosed in quotes
# If you choose not to encrypt the password then the unencrypted password
# must be set as follows:
#hplefthand_password = <vsa-cluster-password>
#hplefthand_clustername = <vsa-cluster-name>
#hplefthand_api_url = https://<vsa-cluster-vip>:8081/lhos
#hplefthand_username = <vsa-cluster-username>
#hplefthand_iscsi_chap_enabled = true
#volume_backend_name = <vsa-backend-name>
#volume_driver = cinder.volume.drivers.san.hp.hp_lefthand_iscsi.HPLeftHandISCSIDriver
#hplefthand_debug = false
#
#
# Use this model if the StoreVirtual Storage array is running LeftHand OS
# lower than version 11
#
# [<unique-section-name>]
# volume_driver=cinder.volume.drivers.san.hp.hp_lefthand_iscsi.HPLeftHandISCSIDriver
# volume_backend_name=lefthand-cliq
# san_ip=<san-ip>
# san_login=<san_username>
# If adding a password here, then the password can be encrypted using the
# mechanism specified in the documentation.  If the password has been encrypted
# add the value and the openstack_user_password_decrypt filter like so:
# san_password= {{ '<encrypted san_password>' | openstack_user_password_decrypt }}
# Note that the encrypted value has to be enclosed in quotes
# If you choose not to encrypt the password then the unencrypted password
# must be set as follows:
# san_password=<san_password>
# san_ssh_port=16022
# san_clustername=<vsa-cluster-name>
#volume_backend_name = <vsa-backend-name>
#
#
# End of section for StoreVirtual (VSA) cluster

# Start of section for StoreServ (3par) iscsi cluster
#
# If you have configured StoreServ backend storage for cinder you must
# uncomment this section, and replace all strings in angle brackets
# with the correct values for the HP 3PAR you have configured.  You
# must also add the section name to the list of values in the
# 'enabled_backends' variable above. You must provide unique section
# each time you configure a new backend for HP 3PAR.
#
# If you want to configure more than one CPG then you can do one of the
# following:
#   1) Create an unique section for each backend, or
#   2) Provide a comma separated list of CPGs for hpe3par_cpg
#
# In the second case, this set of CPGs will form a pool but will be seen as a
# single device by Cinder.
#
#[<unique-section-name>]
#hpe3par_iscsi_chap_enabled = true
#san_ip = <3par-san-ipaddr>
#san_login = <3par-san-username>
# If adding a password here, then the password can be encrypted using the
# mechanism specified in the documentation.  If the password has been encrypted
# add the value and the openstack_user_password_decrypt filter like so:
# san_password = {{ '<encrypted 3par-san-password>' | openstack_user_password_decrypt }}
# Note that the encrypted value has to be enclosed in quotes
# If you choose not to encrypt the password then the unencrypted password
# must be set as follows:
# san_password = <3par-san-password>
#hpe3par_iscsi_ips = <3par-ip-address-1>[,<3par-ip-address-2>,<3par-ip-address-3>, ...]
#hpe3par_username = <3par-username>
# If adding a password here, then the password can be encrypted using the
# mechanism specified in the documentation.  If the password has been encrypted
# add the value and the openstack_user_password_decrypt filter like so:
#hpe3par_password = {{ '<encrypted hpe3par_password>' | openstack_user_password_decrypt }}
# Note that the encrypted value has to be enclosed in quotes
# If you choose not to encrypt the password then the unencrypted password
# must be set as follows:
#hpe3par_password = <hpe3par_password>
#hpe3par_api_url = https://<3par-san-ipaddr>:8080/api/v1
#hpe3par_cpg = <3par-cpg-name-1>[,<3par-cpg-name-2>, ...]
#volume_backend_name = <3par-backend-name>
#volume_driver = cinder.volume.drivers.san.hp.hp_3par_iscsi.HP3PARISCSIDriver
#
# End of section for StoreServ (3par) iscsi cluster


# Start of section to enable a CPG  as a backend for StoreServ (3par)
# using a fibre channel device
#
# If you have configured StoreServ backend storage for cinder you must
# uncomment this section, and replace all strings in angle brackets
# with the correct values for the cluster you have configured.  You
# must also add the section name to the list of values in the
# 'enabled_backends' variable above.
#
# If you want to configure more than one CPG then you can do one of the
# following:
#   1) Create an unique section for each backend, or
#   2) Provide a comma separated list of CPGs for hpe3par_cpg
#
# In second case, these sets of CPGs will form a pool but will seen as a
# single device by Cinder.
#
#
#[<unique-section-name>]
#san_ip = <3par-san-ipaddr>
#san_login = <3par-san-username>
# If adding a password here, then the password can be encrypted using the
# mechanism specified in the documentation.  If the password has been encrypted
# add the value and the openstack_user_password_decrypt filter like so:
#san_password = {{ '<encrypted 3par-san-password>' | openstack_user_password_decrypt }}
# Note that the encrypted value has to be enclosed in quotes
# If you choose not to encrypt the password then the unencrypted password
# must be set as follows:
#san_password = <3par-san-password>
#hpe3par_username = <3par-username>
# If adding a password here, then the password can be encrypted using the
# mechanism specified in the documentation.  If the password has been encrypted
# add the value and the openstack_user_password_decrypt filter like so:
#hpe3par_password = {{ '<encrypted 3par-password>' | openstack_user_password_decrypt }}
# Note that the encrypted value has to be enclosed in quotes
# If you choose not to encrypt the password then the unencrypted password
# must be set as follows:
#hpe3par_password = <3par-password>
#hpe3par_api_url = https://<3par-san-ipaddr>:8080/api/v1
#hpe3par_cpg = <3par-cpg-name-1>[,<3par-cpg-name-2>,...]
#volume_backend_name = <3par-backend-name>
#volume_driver = cinder.volume.drivers.san.hp.hp_3par_fc.HP3PARFCDriver
#
# End of section for StoreServ (3par) fibre channel cluster

# Start of section for ceph
#
# If you have configured ceph backend storage for cinder you
# must uncomment this section, and replace all strings in angle
# brackets with the correct values for the ceph you have
# configured.  You must also add the section name to the list of
# values in the 'enabled_backends' variable above.
#
# If you have more than one ceph backend you must provide this
# whole section for each ceph backend and provide a unique section name for
# each. For example, replace <unique-section-name> with CEPH_1 for
# one backend and CEPH_2 for the other.
#
#[<unique-section-name>]
#rbd_secret_uuid = <secret-uuid>
#rbd_user = <ceph-cinder-user>
#rbd_pool = <ceph-cinder-volume-pool>
#rbd_ceph_conf = <ceph-config-file>
#volume_driver = cinder.volume.drivers.rbd.RBDDriver
#volume_backend_name = <ceph-backend-name>
#
# End of section for ceph

# Start of section for vmdk
#
# If you have configured vmdk storage for cinder you
# must uncomment this section, and replace all strings in angle
# brackets with the correct values for the cluster you have
# configured.  You must also add the section name to the list of
# values in the 'enabled_backends' variable above.
#
# If you have more than one vmdk backend you must provide this
# whole section for each vmdk backend and provide a unique section name for
# each. For example, replace <unique-section-name> with
# VMDK_1 for one backend and VMDK_2 for the other.
#
#[<unique-section-name>]
#vmware_host_ip = <vmware-host-ip>
#vmware_host_password = <vmware-host-password>
#vmware_host_username = <vmware-host-username>
#vmware_insecure = True
#volume_driver = cinder.volume.drivers.vmware.vmdk.VMwareVcVmdkDriver
#volume_backend_name=<vmdk-backend-name>
#
# End of section for vmdk

# Start of section for Broccade Fiber channel Zone Manager
#
# If you have configured Fibre Channel Volume Driver that supports Zone Manager for cinder you
# must uncomment this section, and replace all strings in angle
# brackets with the correct values you have configured.
# In the below configuration fc_fabric_names can be mutilple names,
# you have to define seperate section for each name with appropriate switch details

#[DEFAULT]
#zoning_mode=fabric

#[fc-zone-manager]
#brcd_sb_connector = cinder.zonemanager.drivers.brocade.brcd_fc_zone_client_cli.BrcdFCZoneClientCLI
#fc_san_lookup_service = cinder.zonemanager.drivers.brocade.brcd_fc_san_lookup_service.BrcdFCSanLookupService
#zone_driver = cinder.zonemanager.drivers.brocade.brcd_fc_zone_driver.BrcdFCZoneDriver
#fc_fabric_names = <unique-fabric-name>

#[<unique-fabric-name>]
#fc_fabric_address = <switch-ip-address>
#fc_fabric_user = <switch-user-name>
#fc_fabric_password = <switch-password>
#principal_switch_wwn = <switch-wwn>
#zoning_policy = initiator-target
#zone_activate = true
#zone_name_prefix = <zone-name-prefix>

# End of section for Broccade Fiber channel Zone Manager

# Start of section for ceph backup
#
# If you have configured ceph backup storage for cinder you
# must uncomment this section, and replace all strings in angle
# brackets with the correct values for the ceph you have
# configured.
#
#[DEFAULT]
#backup_driver = cinder.backup.drivers.ceph
#backup_ceph_conf = <ceph-config-file>
#backup_ceph_user = <ceph-backup-user>
#backup_ceph_pool = <ceph-backup-pool>
#
# End of section for ceph backup
07070100000024000081A40000000000000000000000015F23024000003C19000000000000000000000000000000000000005100000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci/tests/cinder.conf.j2.original{#
#
# (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.
#
#}

[DEFAULT]

# Print debugging output (set logging level to DEBUG instead
# of default WARNING level). (boolean value)
debug={{ cinder_debug }}

enable_v3_api=True

osapi_volume_listen = {{ cinder_osapi_volume_listen }}
osapi_volume_listen_port = {{ cinder_osapi_volume_listen_port }}
{% if cinder_glance_url is defined %}
glance_api_servers = {{ cinder_glance_url }}
{% endif %}
{% if cinder_backup_swift_url is defined and cinder_backup_swift_url %}
backup_swift_url = {{ cinder_backup_swift_url }}
swift_catalog_info = object-store:swift:internalURL
{% endif %}
{% if cinder_volume_nova_url is defined %}
nova_endpoint_template = {{ cinder_volume_nova_url }}/%(project_id)s
nova_endpoint_admin_template = {{ cinder_volume_nova_url }}/%(project_id)s
os_region_name = {{ cinder_keystone.region_name }}
nova_catalog_info = compute:nova:internalURL
nova_catalog_admin_info = compute:nova:adminURL
{% endif %}

{% block api_paste_config %}
# Versioned api-paste.ini specified where appropriate.
#api_paste_config = /etc/cinder/api-paste.ini
{% endblock api_paste_config %}

auth_strategy = keystone

state_path = {{ cinder_state_path }}
{% if cinder_image_conversion_dir is defined %}
image_conversion_dir={{ cinder_image_conversion_dir }}
{% endif %}

iscsi_helper={{ cinder_iscsi_helper }}


{% if cinder_public_endpoint is defined %}
# Uncomment to set the public API in the links responses
#public_endpoint = {{ cinder_public_endpoint }}
#osapi_volume_base_URL = {{ cinder_public_endpoint }}
{% endif %}
# behind haproxy record the X-Forward-For source in the logfile
use_forwarded_for = True


control_exchange = {{ cinder_control_exchange }}
rpc_response_timeout = 120

# Common hostname to avoid singleton limitation of Cinder volume manager
host = ha-volume-manager

{% if ((cinderinternal_project_id is defined) and (cinderinternal_user_id is defined)) %}
# Cinder internal project id and user id for volume image cache
cinder_internal_tenant_project_id = {{ cinderinternal_project_id }}
cinder_internal_tenant_user_id = {{ cinderinternal_user_id }}
# To enable volume image caching the image_volume_cache_enabled flag needs to
# be set to True in the relevant backend section in cinder.conf
{% endif %}

{% if my_enabled_backends.cinder_enabled_backends is not defined %}

# Configure the enabled backends
enabled_backends=

{%- if cinder_lvm_device_group %},lvm-1{% endif %}

{% endif %}

# Configure the enabled backends, above left for convenience, until upgrade
# process is finalised.
{% if my_enabled_backends.cinder_enabled_backends is defined %}
enabled_backends={{ my_enabled_backends.cinder_enabled_backends[inventory_hostname]|join(", ") }}

{% for be in my_enabled_backends.cinder_backend_configs %}
[{{ be['name'] }}]
{% for conf in be['config'] %}
{{ conf }}={{ be['config'][conf] }}
{% endfor %}

{% endfor %}
{% endif %}

{% if cinder_keymgr_fixed_key is defined %}
[keymgr]
fixed_key = {{ cinder_keymgr_fixed_key }}
{% elif cinder_keymgr_url is defined and cinder_keymgr_url != "" %}
[keymgr]
api_class = cinder.keymgr.barbican.BarbicanKeyManager
encryption_auth_url = {{ cinder_keystone.internal_url }}/v3
encryption_api_url = {{ cinder_keymgr_url }}/v1
{% endif %}

[keystone_authtoken]
auth_uri = {{ cinder_keystone.identity_admin_url }}

[database]
connection={{ cinder_db }}
max_overflow={{ cinder_max_overflow }}
max_pool_size={{ cinder_max_pool_size }}
min_pool_size={{ cinder_min_pool_size }}

[oslo_messaging_notifications]
driver = {{ cinder_notification_driver }}

[oslo_messaging_rabbit]
rabbit_ha_queues=False
rabbit_hosts = {{ cinder_rabbit_hosts }}
rabbit_password = {{ cinder_rabbit_password }}
rabbit_use_ssl = {{ cinder_rabbit_use_ssl }}
rabbit_userid = {{ cinder_rabbit_userid }}

[oslo_middleware]
enable_proxy_headers_parsing = true

[oslo_concurrency]
lock_path = /var/lib/cinder

{% block audit_middleware %}{% endblock audit_middleware %}
{% if cinder_lvm_device_group %}
# LVM thin provision. This way we don't dd the disk
[lvm-1]
volume-group = cinder-volumes
lvm_type = thin
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volume_backend_name = LVM_iSCSI
iscsi_ip_address = {{ cinder_osapi_volume_listen }}
{% endif %}

# Start of section for StoreVirtual (VSA) cluster
#
# If you have configured StoreVirtual backend storage for cinder you
# must uncomment this section, and replace all strings in angle
# brackets with the correct values for the cluster you have
# configured.  You must also add the section name to the list of
# values in the 'enabled_backends' variable above.
#
# If you have more than one StoreVirtual cluster you must provide this
# whole section for each cluster and provide a unique section name for
# each cluster. For example, replace <unique-section-name> with
# VSA_CLUSTER_1 for one cluster and VSA_CLUSTER_2 for the other.
#
# Note, if you want to group more than one cluster under a single
# cinder backend then you can give the same value to <vsa-backend-name>
# in sections for several clusters.
#
# Use this model if the StoreVirtual Storage array is running LeftHand OS
# version 11 or higer
#
#[<unique-section-name>]
# If adding a password here, then the password can be encrypted using the
# mechanism specified in the documentation.  If the password has been encrypted
# add the value and the openstack_user_password_decrypt filter like so:
#hplefthand_password: {{ '<encrypted vsa-cluster-password>' | openstack_user_password_decrypt }}
# Note that the encrypted value has to be enclosed in quotes
# If you choose not to encrypt the password then the unencrypted password
# must be set as follows:
#hplefthand_password: <vsa-cluster-password>
#hplefthand_clustername: <vsa-cluster-name>
#hplefthand_api_url: https://<vsa-cluster-vip>:8081/lhos
#hplefthand_username: <vsa-cluster-username>
#hplefthand_iscsi_chap_enabled: true
#volume_backend_name: <vsa-backend-name>
#volume_driver: cinder.volume.drivers.san.hp.hp_lefthand_iscsi.HPLeftHandISCSIDriver
#hplefthand_debug: false
#
#
# Use this model if the StoreVirtual Storage array is running LeftHand OS
# lower than version 11
#
# [<unique-section-name>]
# volume_driver=cinder.volume.drivers.san.hp.hp_lefthand_iscsi.HPLeftHandISCSIDriver
# volume_backend_name=lefthand-cliq
# san_ip=<san-ip>
# san_login=<san_username>
# If adding a password here, then the password can be encrypted using the
# mechanism specified in the documentation.  If the password has been encrypted
# add the value and the openstack_user_password_decrypt filter like so:
# san_password= {{ '<encrypted san_password>' | openstack_user_password_decrypt }}
# Note that the encrypted value has to be enclosed in quotes
# If you choose not to encrypt the password then the unencrypted password
# must be set as follows:
# san_password=<san_password>
# san_ssh_port=16022
# san_clustername=<vsa-cluster-name>
#volume_backend_name: <vsa-backend-name>
#
#
# End of section for StoreVirtual (VSA) cluster

# Start of section for StoreServ (3par) iscsi cluster
#
# If you have configured StoreServ backend storage for cinder you must
# uncomment this section, and replace all strings in angle brackets
# with the correct values for the HP 3PAR you have configured.  You
# must also add the section name to the list of values in the
# 'enabled_backends' variable above. You must provide unique section
# each time you configure a new backend for HP 3PAR.
#
# If you want to configure more than one CPG then you can do one of the
# following:
#   1) Create an unique section for each backend, or
#   2) Provide a comma separated list of CPGs for hpe3par_cpg
#
# In the second case, this set of CPGs will form a pool but will be seen as a
# single device by Cinder.
#
#[<unique-section-name>]
#hpe3par_iscsi_chap_enabled: true
#san_ip: <3par-san-ipaddr>
#san_login: <3par-san-username>
# If adding a password here, then the password can be encrypted using the
# mechanism specified in the documentation.  If the password has been encrypted
# add the value and the openstack_user_password_decrypt filter like so:
# san_password: {{ '<encrypted 3par-san-password>' | openstack_user_password_decrypt }}
# Note that the encrypted value has to be enclosed in quotes
# If you choose not to encrypt the password then the unencrypted password
# must be set as follows:
# san_password: <3par-san-password>
#hpe3par_iscsi_ips: <3par-ip-address-1>[,<3par-ip-address-2>,<3par-ip-address-3>, ...]
#hpe3par_username: <3par-username>
# If adding a password here, then the password can be encrypted using the
# mechanism specified in the documentation.  If the password has been encrypted
# add the value and the openstack_user_password_decrypt filter like so:
#hpe3par_password: {{ '<encrypted hpe3par_password>' | openstack_user_password_decrypt }}
# Note that the encrypted value has to be enclosed in quotes
# If you choose not to encrypt the password then the unencrypted password
# must be set as follows:
#hpe3par_password: <hpe3par_password>
#hpe3par_api_url: https://<3par-san-ipaddr>:8080/api/v1
#hpe3par_cpg: <3par-cpg-name-1>[,<3par-cpg-name-2>, ...]
#volume_backend_name: <3par-backend-name>
#volume_driver: cinder.volume.drivers.san.hp.hp_3par_iscsi.HP3PARISCSIDriver
#
# End of section for StoreServ (3par) iscsi cluster


# Start of section to enable a CPG  as a backend for StoreServ (3par)
# using a fibre channel device
#
# If you have configured StoreServ backend storage for cinder you must
# uncomment this section, and replace all strings in angle brackets
# with the correct values for the cluster you have configured.  You
# must also add the section name to the list of values in the
# 'enabled_backends' variable above.
#
# If you want to configure more than one CPG then you can do one of the
# following:
#   1) Create an unique section for each backend, or
#   2) Provide a comma separated list of CPGs for hpe3par_cpg
#
# In second case, these sets of CPGs will form a pool but will seen as a
# single device by Cinder.
#
#
#[<unique-section-name>]
#san_ip: <3par-san-ipaddr>
#san_login: <3par-san-username>
# If adding a password here, then the password can be encrypted using the
# mechanism specified in the documentation.  If the password has been encrypted
# add the value and the openstack_user_password_decrypt filter like so:
#san_password: {{ '<encrypted 3par-san-password>' | openstack_user_password_decrypt }}
# Note that the encrypted value has to be enclosed in quotes
# If you choose not to encrypt the password then the unencrypted password
# must be set as follows:
#san_password: <3par-san-password>
#hpe3par_username: <3par-username>
# If adding a password here, then the password can be encrypted using the
# mechanism specified in the documentation.  If the password has been encrypted
# add the value and the openstack_user_password_decrypt filter like so:
#hpe3par_password: {{ '<encrypted 3par-password>' | openstack_user_password_decrypt }}
# Note that the encrypted value has to be enclosed in quotes
# If you choose not to encrypt the password then the unencrypted password
# must be set as follows:
#hpe3par_password: <3par-password>
#hpe3par_api_url: https://<3par-san-ipaddr>:8080/api/v1
#hpe3par_cpg: <3par-cpg-name-1>[,<3par-cpg-name-2>,...]
#volume_backend_name: <3par-backend-name>
#volume_driver: cinder.volume.drivers.san.hp.hp_3par_fc.HP3PARFCDriver
#
# End of section for StoreServ (3par) fibre channel cluster

# Start of section for ceph
#
# If you have configured ceph backend storage for cinder you
# must uncomment this section, and replace all strings in angle
# brackets with the correct values for the ceph you have
# configured.  You must also add the section name to the list of
# values in the 'enabled_backends' variable above.
#
# If you have more than one ceph backend you must provide this
# whole section for each ceph backend and provide a unique section name for
# each. For example, replace <unique-section-name> with CEPH_1 for
# one backend and CEPH_2 for the other.
#
#[<unique-section-name>]
#rbd_secret_uuid = <secret-uuid>
#rbd_user = <ceph-cinder-user>
#rbd_pool = <ceph-cinder-volume-pool>
#rbd_ceph_conf = <ceph-config-file>
#volume_driver = cinder.volume.drivers.rbd.RBDDriver
#volume_backend_name = <ceph-backend-name>
#
# End of section for ceph

# Start of section for vmdk
#
# If you have configured vmdk storage for cinder you
# must uncomment this section, and replace all strings in angle
# brackets with the correct values for the cluster you have
# configured.  You must also add the section name to the list of
# values in the 'enabled_backends' variable above.
#
# If you have more than one vmdk backend you must provide this
# whole section for each vmdk backend and provide a unique section name for
# each. For example, replace <unique-section-name> with
# VMDK_1 for one backend and VMDK_2 for the other.
#
#[<unique-section-name>]
#vmware_host_ip = <vmware-host-ip>
#vmware_host_password = <vmware-host-password>
#vmware_host_username = <vmware-host-username>
#vmware_insecure = True
#volume_driver = cinder.volume.drivers.vmware.vmdk.VMwareVcVmdkDriver
#volume_backend_name=<vmdk-backend-name>
#
# End of section for vmdk

# Start of section for Broccade Fiber channel Zone Manager
#
# If you have configured Fibre Channel Volume Driver that supports Zone Manager for cinder you
# must uncomment this section, and replace all strings in angle
# brackets with the correct values you have configured.
# In the below configuration fc_fabric_names can be mutilple names,
# you have to define seperate section for each name with appropriate switch details

#[DEFAULT]
#zoning_mode=fabric

#[fc-zone-manager]
#brcd_sb_connector = cinder.zonemanager.drivers.brocade.brcd_fc_zone_client_cli.BrcdFCZoneClientCLI
#fc_san_lookup_service = cinder.zonemanager.drivers.brocade.brcd_fc_san_lookup_service.BrcdFCSanLookupService
#zone_driver = cinder.zonemanager.drivers.brocade.brcd_fc_zone_driver.BrcdFCZoneDriver
#fc_fabric_names = <unique-fabric-name>

#[<unique-fabric-name>]
#fc_fabric_address = <switch-ip-address>
#fc_fabric_user = <switch-user-name>
#fc_fabric_password = <switch-password>
#principal_switch_wwn = <switch-wwn>
#zoning_policy = initiator-target
#zone_activate = true
#zone_name_prefix = <zone-name-prefix>

# End of section for Broccade Fiber channel Zone Manager

# Start of section for ceph backup
#
# If you have configured ceph backup storage for cinder you
# must uncomment this section, and replace all strings in angle
# brackets with the correct values for the ceph you have
# configured.
#
#[DEFAULT]
#backup_driver = cinder.backup.drivers.ceph
#backup_ceph_conf = <ceph-config-file>
#backup_ceph_user = <ceph-backup-user>
#backup_ceph_pool = <ceph-backup-pool>
#
# End of section for ceph backup
07070100000025000081A40000000000000000000000015F23024000000035000000000000000000000000000000000000005800000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci/tests/cinder_backend_assignment.fact{
  "LVM3-CONFIG-CP1": "project-ccp-controller-m1"
}
07070100000026000081A40000000000000000000000015F23024000000002000000000000000000000000000000000000005D00000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci/tests/cinder_volume_run_location_ccp.fact2
07070100000027000081ED0000000000000000000000015F230240000005F8000000000000000000000000000000000000005500000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci/tests/configure-using-jinja2.bash#
# (c) Copyright 2016-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.
#

# Rename original control_plane.yml and copy new one
mv ~/openstack/my_cloud/definition/data/control_plane.yml \
   ~/openstack/my_cloud/definition/data/control_plane.yml.backup
cp ~/ardana-ci-tests/control_plane.yml ~/openstack/my_cloud/definition/data/control_plane.yml

# Rename cinder config directory
mv ~/openstack/my_cloud/definition/data/cinder/ ~/openstack/my_cloud/definition/data/cinder.backup

# Copy cinder.conf.j2 with configured backend
cp ~/ardana-ci-tests/cinder.conf.j2 ~/openstack/my_cloud/config/cinder/cinder.conf.j2

pushd ~/openstack/ardana/ansible

git add -A
git commit  --allow-empty -m "Stop Using New Storage Input Model"

ansible-playbook -i hosts/localhost config-processor-run.yml -e encrypt="" \
                                                             -e rekey=""

sleep 5

ansible-playbook -i hosts/localhost ready-deployment.yml

sleep 5

popd
07070100000028000081A40000000000000000000000015F23024000000A7F000000000000000000000000000000000000004B00000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci/tests/control_plane.yml#
# (c) Copyright 2016-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

  control-planes:
    - name: ccp
      control-plane-prefix: ccp
      region-name: region1
      failure-zones:
        - AZ1
        - AZ2
        - AZ3
      common-service-components:
        - lifecycle-manager-target
        - monasca-agent

      clusters:
        - name: cluster0
          cluster-prefix: deployer
          server-role:
            - DEPLOYER-ROLE
          member-count: 1
          allocation-policy: strict
          service-components:
            - lifecycle-manager
            - ntp-client
            - openstack-client
            - tempest
            - cinder-client
            - swift-client
            - monasca-client

        - name: cluster1
          cluster-prefix: monasca
          server-role:
            - MONASCA-ROLE
          member-count: 1
          allocation-policy: strict
          service-components:
            - ntp-client
            # monasca
            - kafka
            - zookeeper
            - vertica
            - monasca-api
            - monasca-persister
            # memcached required for swift
            - memcached

        - name: cluster2
          cluster-prefix: db-rmq-key
          server-role:
            - MYSQL-RMQ-KEYSTONE-ROLE
          member-count: 1
          allocation-policy: strict
          service-components:
            - ntp-server
            - mysql
            - rabbitmq
            - keystone-client
            - keystone-api

        - name: cluster3
          cluster-prefix: controller
          server-role:
            - CONTROLLER-ROLE
          member-count: 3
          allocation-policy: strict
          service-components:
            - ntp-client
            - cinder-api
            - cinder-scheduler
            - cinder-volume
            - cinder-backup
            - cinder-client
            - ip-cluster
            - swift-ring-builder
            - swift-proxy
            - swift-account
            - swift-container
            - swift-object
            - swift-client
07070100000029000081ED0000000000000000000000015F23024000000305000000000000000000000000000000000000005600000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci/tests/copy-cinder-fact-file-1.bash#
# (c) Copyright 2016-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.
#

sudo cp ~/ardana-ci-tests/cinder_backend_assignment.fact \
        /etc/ansible/facts.d/cinder_backend_assignment.fact

sleep 5
0707010000002A000081ED0000000000000000000000015F2302400000030F000000000000000000000000000000000000005600000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci/tests/copy-cinder-fact-file-2.bash#
# (c) Copyright 2016-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.
#

sudo cp ~/ardana-ci-tests/cinder_volume_run_location_ccp.fact \
        /etc/ansible/facts.d/cinder_volume_run_location_ccp.fact

sleep 5
0707010000002B000081ED0000000000000000000000015F230240000007AA000000000000000000000000000000000000005C00000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci/tests/revert-to-storage-input-model.bash#
# (c) Copyright 2016-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.
#

# Run this script on the deployer (located in ~/ardana-ci-tests/) to revert the
# Project Stack cloud back to it's original state after running test-plan.yml.
# The storage backends will be configured with the Storage Input Model. This
# script is not executed during CI.

mv ~/openstack/my_cloud/definition/data/control_plane.yml.backup \
   ~/openstack/my_cloud/definition/data/control_plane.yml

mv ~/openstack/my_cloud/definition/data/cinder.backup/ \
   ~/openstack/my_cloud/definition/data/cinder

# Copy original cinder.conf.j2 without backend configuration
cp ~/ardana-ci-tests/cinder.conf.j2.original ~/openstack/my_cloud/config/cinder/cinder.conf.j2

sudo rm /etc/ansible/facts.d/cinder_backend_assignment.fact
sudo rm /etc/ansible/facts.d/cinder_volume_run_location_ccp.fact

pushd ~/openstack/ardana/ansible

git add -A
git commit  --allow-empty -m "Revert Back To Using Storage Input Model"

ansible-playbook -i hosts/localhost config-processor-run.yml -e encrypt="" \
                                                             -e rekey=""

sleep 2

ansible-playbook -i hosts/localhost ready-deployment.yml

sleep 2

popd
pushd ~/scratch/ansible/next/ardana/ansible/
sleep 2

ansible-playbook -i hosts/verb_hosts cinder-deploy.yml

sleep 2

ansible-playbook -i hosts/verb_hosts cinder-status.yml

popd
0707010000002C000081A40000000000000000000000015F2302400000225E000000000000000000000000000000000000004800000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci/tests/test-plan.yaml#
# (c) Copyright 2016-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.
#
---

### Start Tests Whilst Using New Storage Input Model ###

- name: Test Cinder Status 1
  logfile: test_cinder_status_1.log
  prefix: Cinder-Status
  exec:
    - ansible-playbook -i hosts/verb_hosts cinder-status.yml

# Checks if cinder services are running on expected controllers
- name: Validate Cinder Status 1
  logfile: validate_cinder_status_1.log
  prefix: Validate-Status
  exec:
    - validate-cinder-status-1.bash

- name: Test Cinder Reconfigure 1
  logfile: test_cinder_reconfigure_1.log
  prefix: Cinder-Reconfigure
  playbooks:
    - cinder-reconfigure.yml

- name: Test Cinder Upgrade 1
  logfile: test_cinder_upgrade_1.log
  prefix: Cinder-Upgrade
  playbooks:
    - cinder-upgrade.yml

- name: Test Reconfigure Credentials Change 1
  logfile: test_cinder_reconfigure_credentials_change_1.log
  prefix: Reconfigure-Creds-Change
  playbooks:
    - cinder-reconfigure-credentials-change.yml

- name: Test Show Volume Hosts 1
  logfile: test_cinder_show_vol_hosts_1.log
  prefix: Show-Vol-Hosts
  playbooks:
    - cinder-show-volume-hosts.yml

- name: Validate Cinder Operations 1
  logfile: validate_cinder_ops_1.log
  prefix: Validate-Ops
  exec:
    - validate-cinder-operations.bash

- name: Test Cinder Stop 1
  logfile: test_cinder_stop_1.log
  prefix: Cinder-Stop
  playbooks:
    - cinder-stop.yml

- name: Test Cinder Start 1
  logfile: test_cinder_start_1.log
  prefix: Cinder-Start
  playbooks:
    - cinder-start.yml

- name: Test Cinder Status 2
  logfile: test_cinder_status_2.log
  prefix: Cinder-Status
  exec:
    - ansible-playbook -i hosts/verb_hosts cinder-status.yml

- name: Run tempest tests 1
  logfile: cinder_tempest_tests_1.log
  prefix: Tempest
  tempest:
    - "+tempest.api.volume"
    - "-tempest.api.volume.admin.test_volume_quotas.BaseVolumeQuotasAdminV2TestJSON.test_delete_quota"
    - "-tempest.api.volume.admin.test_volume_quotas.VolumeQuotasAdminV1TestJSON.test_delete_quota"
    - "-tempest.api.volume.admin.test_volume_services.VolumesServicesV1TestJSON.test_get_service_by_host_name"
    - "-tempest.api.volume.admin.test_volume_services.VolumesServicesV2TestJSON.test_get_service_by_host_name"
    - "-tempest.api.volume.test_volumes_actions.VolumesV1ActionsTest"
    - "-tempest.api.volume.test_volumes_actions.VolumesV2ActionsTest"
    - "+tempest.api.object_storage"
    - "+tempest.api.compute.volumes"
    - "+tempest.scenario.test_object_storage_basic_ops"
    - "+tempest.scenario.test_encrypted_cinder_volumes"
    - "-tempest.api.volume.test_volumes_backup.VolumesBackupsV1Test.test_bootable_volume_backup_and_restore"
    - "-tempest.api.volume.test_volumes_backup.VolumesBackupsV2Test.test_bootable_volume_backup_and_restore"
    - "-tempest.api.volume.test_volumes_clone.VolumesV1CloneTest.test_create_from_bootable_volume"
    - "-tempest.api.volume.test_volumes_clone.VolumesV2CloneTest.test_create_from_bootable_volume"
    - "-tempest.api.volume.v2.test_image_metadata.VolumesV2ImageMetadata"

### Cinder Migrate With New Storage Input Model ###

- name: Validate Backends Before Migrate
  logfile: validate_backends-1.log
  prefix: Validate-Backends
  exec:
    - validate-backends-1.bash

# Copy cinder_backend_assignment.fact file for migrate
- name: Copy Cinder Fact File 1
  logfile: copy_cinder_fact_file_1.log
  prefix: Copy-Fact-File
  exec:
    - copy-cinder-fact-file-1.bash

- name: Test Cinder Migrate Volume 1
  logfile: test_cinder_migrate_1.log
  prefix: Cinder-Migrate
  exec:
    - ansible-playbook -i hosts/verb_hosts cinder-migrate-volume.yml
      -e '{\"confirm_cinder_migrate\":false}'

- name: Validate Backends After Migrate
  logfile: validate_backends-2.log
  prefix: Validate-Backends
  exec:
    - validate-backends-2.bash

- name: Test Cinder Status 3
  logfile: test_cinder_status_3.log
  prefix: Cinder-Status
  exec:
    - ansible-playbook -i hosts/verb_hosts cinder-status.yml

# Checks if cinder services are running on expected controllers
- name: Validate Cinder Status 2
  logfile: validate_cinder_status_2.log
  prefix: Validate-Status
  exec:
    - validate-cinder-status-1.bash

### Stop Using Storage Input Model And Configure Using Jinja2 ###

- name: Configure Using Jinja2
  logfile: configure_using_jinja2.log
  prefix: Configure-Jinja2
  exec:
    - configure-using-jinja2.bash

- name: Deploy Cinder with Jinja2 Configuration
  logfile: test_cinder_deploy.log
  prefix: Cinder-Deploy
  playbooks:
    - cinder-deploy.yml

- name: Test Cinder Status 4
  logfile: test_cinder_status_4.log
  prefix: Cinder-Status
  exec:
    - ansible-playbook -i hosts/verb_hosts cinder-status.yml

# Checks if cinder services are running on expected controllers
- name: Validate Cinder Status 3
  logfile: validate_cinder_status_3.log
  prefix: Validate-Status
  exec:
    - validate-cinder-status-2.bash

### Cinder Migrate With Jinja2 Configuration ###

# Copy cinder_volume_run_location_ccp.fact for migrate
- name: Copy Cinder Fact File 2
  logfile: copy_cinder_fact_file_2.log
  prefix: Copy-Fact-File
  exec:
    - copy-cinder-fact-file-2.bash

- name: Test Cinder Migrate Volume 2
  logfile: test_cinder_migrate_2.log
  prefix: Cinder-Migrate
  exec:
    - ansible-playbook -i hosts/verb_hosts cinder-migrate-volume.yml
      -e '{\"confirm_cinder_migrate\":false}'

- name: Test Cinder Status 5
  logfile: test_cinder_status_5.log
  prefix: Cinder-Status
  playbooks:
    - cinder-status.yml

# Checks if cinder services are running on expected controllers
- name: Validate Cinder Status 4
  logfile: validate_cinder_status_4.log
  prefix: Validate-Status
  exec:
    - validate-cinder-status-3.bash

- name: Test Cinder Reconfigure 2
  logfile: test_cinder_reconfigure_2.log
  prefix: Cinder-Reconfigure
  playbooks:
    - cinder-reconfigure.yml

- name: Test Cinder Upgrade 2
  logfile: test_cinder_upgrade_2.log
  prefix: Cinder-Upgrade
  playbooks:
    - cinder-upgrade.yml

- name: Test Reconfigure Credentials Change 2
  logfile: test_cinder_reconfigure_credentials_change_2.log
  prefix: Reconfigure-Creds-Change
  playbooks:
    - cinder-reconfigure-credentials-change.yml

- name: Test Show Volume Hosts 2
  logfile: test_cinder_show_vol_hosts_2.log
  prefix: Show-Vol-Hosts
  playbooks:
    - cinder-show-volume-hosts.yml

- name: Validate Cinder Operations 2
  logfile: validate_cinder_ops_2.log
  prefix: Validate-Ops
  exec:
    - validate-cinder-operations.bash

- name: Test Cinder Stop 2
  logfile: test_cinder_stop_2.log
  prefix: Cinder-Stop
  playbooks:
    - cinder-stop.yml

- name: Test Cinder Start 2
  logfile: test_cinder_start_2.log
  prefix: Cinder-Start
  playbooks:
    - cinder-start.yml

- name: Test Cinder Status 6
  logfile: test_cinder_status_6.log
  prefix: Cinder-Status
  exec:
    - ansible-playbook -i hosts/verb_hosts cinder-status.yml

- name: Run tempest tests 2
  logfile: cinder_tempest_tests_2.log
  prefix: Tempest
  tempest:
    - "+tempest.api.volume"
    - "-tempest.api.volume.admin.test_volume_quotas.BaseVolumeQuotasAdminV2TestJSON.test_delete_quota"
    - "-tempest.api.volume.admin.test_volume_quotas.VolumeQuotasAdminV1TestJSON.test_delete_quota"
    - "-tempest.api.volume.admin.test_volume_services.VolumesServicesV1TestJSON.test_get_service_by_host_name"
    - "-tempest.api.volume.admin.test_volume_services.VolumesServicesV2TestJSON.test_get_service_by_host_name"
    - "-tempest.api.volume.test_volumes_actions.VolumesV1ActionsTest"
    - "-tempest.api.volume.test_volumes_actions.VolumesV2ActionsTest"
    - "+tempest.api.object_storage"
    - "+tempest.api.compute.volumes"
    - "+tempest.scenario.test_object_storage_basic_ops"
    - "+tempest.scenario.test_encrypted_cinder_volumes"
    - "-tempest.api.volume.test_volumes_backup.VolumesBackupsV1Test.test_bootable_volume_backup_and_restore"
    - "-tempest.api.volume.test_volumes_backup.VolumesBackupsV2Test.test_bootable_volume_backup_and_restore"
    - "-tempest.api.volume.test_volumes_clone.VolumesV1CloneTest.test_create_from_bootable_volume"
    - "-tempest.api.volume.test_volumes_clone.VolumesV2CloneTest.test_create_from_bootable_volume"
    - "-tempest.api.volume.v2.test_image_metadata.VolumesV2ImageMetadata"
0707010000002D000081ED0000000000000000000000015F2302400000071C000000000000000000000000000000000000005200000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci/tests/validate-backends-1.bash#
# (c) Copyright 2016-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.
#

result="pass"

ssh -o BatchMode=yes -o StrictHostKeyChecking=no project-ccp-controller-m1-ardana \
"sudo grep -q 'enabled_backends=LVM1-CONFIG-CP1' /etc/cinder/cinder.conf"
rc=$?

if [ "$rc" != "0" ]
then
    echo "ERROR: Could not validate correct backends on first controller."
    result="fail"
fi

ssh -o BatchMode=yes -o StrictHostKeyChecking=no project-ccp-controller-m2-ardana \
"sudo grep -q 'enabled_backends=LVM2-CONFIG-CP1' /etc/cinder/cinder.conf"
rc=$?

if [ "$rc" != "0" ]
then
    echo "ERROR: Could not validate correct backends on second controller."
    result="fail"
fi

ssh -o BatchMode=yes -o StrictHostKeyChecking=no project-ccp-controller-m3-ardana \
"sudo grep -q 'enabled_backends=LVM3-CONFIG-CP1' /etc/cinder/cinder.conf"
rc=$?

if [ "$rc" != "0" ]
then
    echo "ERROR: Could not validate correct backends on third controller."
    result="fail"
fi

if [ "$result" == "fail" ]
then
    echo FAILURE: Could not validate correct backends on controllers, check error \
                  messages above for more details.
    exit -1
else
    echo SUCCESS: Validated correct backends on controllers before migrating cinder volume service.
    exit 0
fi
0707010000002E000081ED0000000000000000000000015F2302400000072B000000000000000000000000000000000000005200000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci/tests/validate-backends-2.bash#
# (c) Copyright 2016-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.
#

result="pass"

ssh -o BatchMode=yes -o StrictHostKeyChecking=no project-ccp-controller-m1-ardana \
"sudo grep -q 'enabled_backends=LVM1-CONFIG-CP1, LVM3-CONFIG-CP1' /etc/cinder/cinder.conf"
rc=$?

if [ "$rc" != "0" ]
then
    echo "ERROR: Could not validate correct backends on first controller."
    result="fail"
fi

ssh -o BatchMode=yes -o StrictHostKeyChecking=no project-ccp-controller-m2-ardana \
"sudo grep -q 'enabled_backends=LVM2-CONFIG-CP1' /etc/cinder/cinder.conf"
rc=$?

if [ "$rc" != "0" ]
then
    echo "ERROR: Could not validate correct backends on second controller."
    result="fail"
fi

ssh -o BatchMode=yes -o StrictHostKeyChecking=no project-ccp-controller-m3-ardana \
"sudo grep -q '^enabled_backends=[[:space:]]*$' /etc/cinder/cinder.conf"
rc=$?

if [ "$rc" != "0" ]
then
    echo "ERROR: Could not validate correct backends on third controller."
    result="fail"
fi

if [ "$result" == "fail" ]
then
    echo FAILURE: Could not validate correct backends on controllers, check error \
                  messages above for more details.
    exit -1
else
    echo SUCCESS: Validated correct backends on controllers after migrating cinder volume service.
    exit 0
fi
0707010000002F000081ED0000000000000000000000015F230240000010A2000000000000000000000000000000000000005900000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci/tests/validate-cinder-operations.bash#
# (c) Copyright 2016-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.
#

#/bin/bash
source ~/service.osrc

function test_volume_count
{
    EXPECTED=$1
    COUNT=$(($(cinder list | wc -l) - 4))
    if [ "${COUNT}" != "${EXPECTED}" ]
    then
        echo Invalid volume count ${COUNT}
        exit -1
    fi
}

function create_volume
{
    echo Creating Volume...
    VOLUME=$1
    SIZE=$2
    cinder create --name ${VOLUME} ${SIZE}
    rc=$?
    if [ "$rc" != "0" ]
    then
        print Volume create failed for ${VOLUME}
        exit -1
    fi

    STATUS=""
    TIME_OUT=0
    while [ "${STATUS}" == "" ] && [ ${TIME_OUT} -lt 20 ]
    do
        sleep 1
        STATUS=$(cinder list | grep ${VOLUME} | grep available | awk '{print $2}')
        TIME_OUT=$((TIME_OUT + 1))
    done
}

function delete_volume
{
    echo Deleting Volume...
    VOLUME=$1
    BEFORE_COUNT=$(($(cinder list | wc -l) - 4))
    cinder delete ${VOLUME}
    rc=$?
    if [ "$rc" != "0" ]
    then
        print Volume delete failed for ${VOLUME}
        exit -1
    fi
    AFTER_COUNT=$(($(cinder list | wc -l) - 4))

    TIME_OUT=0
    while [ $((AFTER_COUNT)) -eq $((BEFORE_COUNT)) ] && [ ${TIME_OUT} -lt 20 ]
    do
        AFTER_COUNT=$(($(cinder list | wc -l) - 4))
        sleep 1
        TIME_OUT=$((TIME_OUT + 1))
    done
}

function test_backup_count
{
    EXPECTED=$1
    COUNT=$(($(cinder backup-list | wc -l) - 4))
    if [ "${COUNT}" != "${EXPECTED}" ]
    then
        echo Invalid backup count ${COUNT}
        exit -1
    fi
}

function create_backup
{
    echo Creating Backup Volume...
    BACKUP=$1
    VOLUME=$2
    cinder backup-create --name ${BACKUP} ${VOLUME}
    rc=$?
    if [ "$rc" != "0" ]
    then
        print Backup create failed for ${VOLUME}
        exit -1
    fi

    STATUS=""
    TIME_OUT=0
    while [ "${STATUS}" == "" ] && [ ${TIME_OUT} -lt 60 ]
    do
        sleep 1
        STATUS=$(cinder backup-list | grep ${BACKUP} | grep available | awk '{print $6}')
        TIME_OUT=$((TIME_OUT + 1))
    done
}

function restore_backup
{
    echo Restoring Backup Volume...
    VOLUME=$1
    BACKUP=$2
    ID=$(cinder backup-list | grep ${BACKUP} | awk '{print $2}')
    cinder backup-restore --volume ${VOLUME} ${ID}
    rc=$?
    if [ "$rc" != "0" ]
    then
        print Backup restore failed for ${BACKUP}
        exit -1
    fi

    STATUS=""
    TIME_OUT=0
    while [ "${STATUS}" == "" ] && [ ${TIME_OUT} -lt 40 ]
    do
        sleep 1
        STATUS=$(cinder list | grep ${VOLUME} | grep available | awk '{print $2}')
        TIME_OUT=$((TIME_OUT + 1))
    done

    STATUS=""
    TIME_OUT=0
    while [ "${STATUS}" == "" ] && [ ${TIME_OUT} -lt 40 ]
    do
        sleep 1
        STATUS=$(cinder backup-list | grep ${BACKUP} | grep available | awk '{print $6}')
        TIME_OUT=$((TIME_OUT + 1))
    done
}

function delete_backup
{
    echo Deleting Backup Volume...
    BACKUP=$1
    STATUS=""
    BEFORE_COUNT=$(($(cinder backup-list | wc -l) - 4))
    cinder backup-delete ${BACKUP}
    rc=$?
    if [ "$rc" != "0" ]
    then
        print Backup delete failed for ${BACKUP}
        exit -1
    fi
    AFTER_COUNT=$(($(cinder backup-list | wc -l) - 4))

    TIME_OUT=0
    while [ $((AFTER_COUNT)) -eq $((BEFORE_COUNT)) ] && [ ${TIME_OUT} -lt 20 ]
    do
        AFTER_COUNT=$(($(cinder backup-list | wc -l) - 4))
        sleep 1
        TIME_OUT=$((TIME_OUT + 1))
    done
}

test_volume_count 0
create_volume v1 1
test_volume_count 1

test_backup_count 0
create_backup b1 v1
test_backup_count 1

restore_backup v1 b1
delete_backup b1
test_backup_count 0

delete_volume v1
test_volume_count 0

echo ***VALIDATED CINDER OPERATIONS SUCCESSFULLY***

exit 0
07070100000030000081ED0000000000000000000000015F2302400000108C000000000000000000000000000000000000005700000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci/tests/validate-cinder-status-1.bash#
# (c) Copyright 2016-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.
#

result="pass"

### Check First Controller ###

ssh -o BatchMode=yes -o StrictHostKeyChecking=no project-ccp-controller-m1-ardana \
"ps auxww | grep cinder-volume | grep -v grep"
rc=$?

if [ "$rc" != "0" ]
then
    echo ERROR: Cinder Volume service should be running on the first controller.
    result="fail"
fi

ssh -o BatchMode=yes -o StrictHostKeyChecking=no project-ccp-controller-m1-ardana \
"ps auxww | grep cinder-backup | grep -v grep"
rc=$?

if [ "$rc" != "0" ]
then
    echo ERROR: Cinder Backup service should be running on the first controller.
    result="fail"
fi

ssh -o BatchMode=yes -o StrictHostKeyChecking=no project-ccp-controller-m1-ardana \
"ps auxww | grep cinder-api | grep -v grep"
rc=$?

if [ "$rc" != "0" ]
then
    echo ERROR: Cinder API service should be running on the first controller.
    result="fail"
fi

ssh -o BatchMode=yes -o StrictHostKeyChecking=no project-ccp-controller-m1-ardana \
"ps auxww | grep cinder-scheduler | grep -v grep"
rc=$?

if [ "$rc" != "0" ]
then
    echo ERROR: Cinder Scheduler service should be running on the first controller.
    result="fail"
fi


### Check Second Controller ###

ssh -o BatchMode=yes -o StrictHostKeyChecking=no project-ccp-controller-m2-ardana \
"ps auxww | grep cinder-volume | grep -v grep"
rc=$?

if [ "$rc" != "0" ]
then
    echo ERROR: Cinder Volume service should be running on the second controller.
    result="fail"
fi

ssh -o BatchMode=yes -o StrictHostKeyChecking=no project-ccp-controller-m2-ardana \
"ps auxww | grep cinder-backup | grep -v grep"
rc=$?

if [ "$rc" != "0" ]
then
    echo ERROR: Cinder Backup service should be running on the second controller.
    result="fail"
fi

ssh -o BatchMode=yes -o StrictHostKeyChecking=no project-ccp-controller-m2-ardana \
"ps auxww | grep cinder-api | grep -v grep"
rc=$?

if [ "$rc" != "0" ]
then
    echo ERROR: Cinder API service should be running on the second controller.
    result="fail"
fi

ssh -o BatchMode=yes -o StrictHostKeyChecking=no project-ccp-controller-m2-ardana \
"ps auxww | grep cinder-scheduler | grep -v grep"
rc=$?

if [ "$rc" != "0" ]
then
    echo ERROR: Cinder Scheduler service should be running on the second controller.
    result="fail"
fi


### Check Third Controller ###

ssh -o BatchMode=yes -o StrictHostKeyChecking=no project-ccp-controller-m3-ardana \
"ps auxww | grep cinder-volume | grep -v grep"
rc=$?

if [ "$rc" != "0" ]
then
    echo ERROR: Cinder Volume service should be running on the third controller.
    result="fail"
fi

ssh -o BatchMode=yes -o StrictHostKeyChecking=no project-ccp-controller-m3-ardana \
"ps auxww | grep cinder-backup | grep -v grep"
rc=$?

if [ "$rc" != "0" ]
then
    echo ERROR: Cinder Backup service should be running on the third controller.
    result="fail"
fi

ssh -o BatchMode=yes -o StrictHostKeyChecking=no project-ccp-controller-m3-ardana \
"ps auxww | grep cinder-api | grep -v grep"
rc=$?

if [ "$rc" != "0" ]
then
    echo ERROR: Cinder API service should be running on the third controller.
    result="fail"
fi

ssh -o BatchMode=yes -o StrictHostKeyChecking=no project-ccp-controller-m3-ardana \
"ps auxww | grep cinder-scheduler | grep -v grep"
rc=$?

if [ "$rc" != "0" ]
then
    echo ERROR: Cinder Scheduler service should be running on the third controller.
    result="fail"
fi


if [ "$result" == "fail" ]
then
    echo FAILURE: Could not validate cinder services running on controllers, check error \
                messages above for more details.
    exit -1
else
    echo SUCCESS: Validated cinder services running on expected controllers.
    exit 0
fi
07070100000031000081ED0000000000000000000000015F2302400000109E000000000000000000000000000000000000005700000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci/tests/validate-cinder-status-2.bash#
# (c) Copyright 2016-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.
#

result="pass"

### Check First Controller ###

ssh -o BatchMode=yes -o StrictHostKeyChecking=no project-ccp-controller-m1-ardana \
"ps auxww | grep cinder-volume | grep -v grep"
rc=$?

if [ "$rc" != "0" ]
then
    echo ERROR: Cinder Volume service should be running on the first controller.
    result="fail"
fi

ssh -o BatchMode=yes -o StrictHostKeyChecking=no project-ccp-controller-m1-ardana \
"ps auxww | grep cinder-backup | grep -v grep"
rc=$?

if [ "$rc" != "0" ]
then
    echo ERROR: Cinder Backup service should be running on the first controller.
    result="fail"
fi

ssh -o BatchMode=yes -o StrictHostKeyChecking=no project-ccp-controller-m1-ardana \
"ps auxww | grep cinder-api | grep -v grep"
rc=$?

if [ "$rc" != "0" ]
then
    echo ERROR: Cinder API service should be running on the first controller.
    result="fail"
fi

ssh -o BatchMode=yes -o StrictHostKeyChecking=no project-ccp-controller-m1-ardana \
"ps auxww | grep cinder-scheduler | grep -v grep"
rc=$?

if [ "$rc" != "0" ]
then
    echo ERROR: Cinder Scheduler service should be running on the first controller.
    result="fail"
fi


### Check Second Controller ###

ssh -o BatchMode=yes -o StrictHostKeyChecking=no project-ccp-controller-m2-ardana \
"ps auxww | grep cinder-volume | grep -v grep"
rc=$?

if [ "$rc" != "1" ]
then
    echo ERROR: Cinder Volume service should not be running on the second controller.
    result="fail"
fi

ssh -o BatchMode=yes -o StrictHostKeyChecking=no project-ccp-controller-m2-ardana \
"ps auxww | grep cinder-backup | grep -v grep"
rc=$?

if [ "$rc" != "1" ]
then
    echo ERROR: Cinder Backup service should not be running on the second controller.
    result="fail"
fi

ssh -o BatchMode=yes -o StrictHostKeyChecking=no project-ccp-controller-m2-ardana \
"ps auxww | grep cinder-api | grep -v grep"
rc=$?

if [ "$rc" != "0" ]
then
    echo ERROR: Cinder API service should be running on the second controller.
    result="fail"
fi

ssh -o BatchMode=yes -o StrictHostKeyChecking=no project-ccp-controller-m2-ardana \
"ps auxww | grep cinder-scheduler | grep -v grep"
rc=$?

if [ "$rc" != "0" ]
then
    echo ERROR: Cinder Scheduler service should be running on the second controller.
    result="fail"
fi


### Check Third Controller ###

ssh -o BatchMode=yes -o StrictHostKeyChecking=no project-ccp-controller-m3-ardana \
"ps auxww | grep cinder-volume | grep -v grep"
rc=$?

if [ "$rc" != "1" ]
then
    echo ERROR: Cinder Volume service should not be running on the third controller.
    result="fail"
fi

ssh -o BatchMode=yes -o StrictHostKeyChecking=no project-ccp-controller-m3-ardana \
"ps auxww | grep cinder-backup | grep -v grep"
rc=$?

if [ "$rc" != "1" ]
then
    echo ERROR: Cinder Backup service should not be running on the third controller.
    result="fail"
fi

ssh -o BatchMode=yes -o StrictHostKeyChecking=no project-ccp-controller-m3-ardana \
"ps auxww | grep cinder-api | grep -v grep"
rc=$?

if [ "$rc" != "0" ]
then
    echo ERROR: Cinder API service should be running on the third controller.
    result="fail"
fi

ssh -o BatchMode=yes -o StrictHostKeyChecking=no project-ccp-controller-m3-ardana \
"ps auxww | grep cinder-scheduler | grep -v grep"
rc=$?

if [ "$rc" != "0" ]
then
    echo ERROR: Cinder Scheduler service should be running on the third controller.
    result="fail"
fi


if [ "$result" == "fail" ]
then
    echo FAILURE: Could not validate cinder services running on controllers, check error \
                  messages above for more details.
    exit -1
else
    echo SUCCESS: Validated cinder services running on expected controllers.
    exit 0
fi
07070100000032000081ED0000000000000000000000015F2302400000109E000000000000000000000000000000000000005700000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci/tests/validate-cinder-status-3.bash#
# (c) Copyright 2016-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.
#

result="pass"

### Check First Controller ###

ssh -o BatchMode=yes -o StrictHostKeyChecking=no project-ccp-controller-m1-ardana \
"ps auxww | grep cinder-volume | grep -v grep"
rc=$?

if [ "$rc" != "1" ]
then
    echo ERROR: Cinder Volume service should not be running on the first controller.
    result="fail"
fi

ssh -o BatchMode=yes -o StrictHostKeyChecking=no project-ccp-controller-m1-ardana \
"ps auxww | grep cinder-backup | grep -v grep"
rc=$?

if [ "$rc" != "1" ]
then
    echo ERROR: Cinder Backup service should not be running on the first controller.
    result="fail"
fi

ssh -o BatchMode=yes -o StrictHostKeyChecking=no project-ccp-controller-m1-ardana \
"ps auxww | grep cinder-api | grep -v grep"
rc=$?

if [ "$rc" != "0" ]
then
    echo ERROR: Cinder API service should be running on the first controller.
    result="fail"
fi

ssh -o BatchMode=yes -o StrictHostKeyChecking=no project-ccp-controller-m1-ardana \
"ps auxww | grep cinder-scheduler | grep -v grep"
rc=$?

if [ "$rc" != "0" ]
then
    echo ERROR: Cinder Scheduler service should be running on the first controller.
    result="fail"
fi


### Check Second Controller ###

ssh -o BatchMode=yes -o StrictHostKeyChecking=no project-ccp-controller-m2-ardana \
"ps auxww | grep cinder-volume | grep -v grep"
rc=$?

if [ "$rc" != "1" ]
then
    echo ERROR: Cinder Volume service should not be running on the second controller.
    result="fail"
fi

ssh -o BatchMode=yes -o StrictHostKeyChecking=no project-ccp-controller-m2-ardana \
"ps auxww | grep cinder-backup | grep -v grep"
rc=$?

if [ "$rc" != "1" ]
then
    echo ERROR: Cinder Backup service should not be running on the second controller.
    result="fail"
fi

ssh -o BatchMode=yes -o StrictHostKeyChecking=no project-ccp-controller-m2-ardana \
"ps auxww | grep cinder-api | grep -v grep"
rc=$?

if [ "$rc" != "0" ]
then
    echo ERROR: Cinder API service should be running on the second controller.
    result="fail"
fi

ssh -o BatchMode=yes -o StrictHostKeyChecking=no project-ccp-controller-m2-ardana \
"ps auxww | grep cinder-scheduler | grep -v grep"
rc=$?

if [ "$rc" != "0" ]
then
    echo ERROR: Cinder Scheduler service should be running on the second controller.
    result="fail"
fi


### Check Third Controller ###

ssh -o BatchMode=yes -o StrictHostKeyChecking=no project-ccp-controller-m3-ardana \
"ps auxww | grep cinder-volume | grep -v grep"
rc=$?

if [ "$rc" != "0" ]
then
    echo ERROR: Cinder Volume service should be running on the third controller.
    result="fail"
fi

ssh -o BatchMode=yes -o StrictHostKeyChecking=no project-ccp-controller-m3-ardana \
"ps auxww | grep cinder-backup | grep -v grep"
rc=$?

if [ "$rc" != "0" ]
then
    echo ERROR: Cinder Backup service should be running on the third controller.
    result="fail"
fi

ssh -o BatchMode=yes -o StrictHostKeyChecking=no project-ccp-controller-m3-ardana \
"ps auxww | grep cinder-api | grep -v grep"
rc=$?

if [ "$rc" != "0" ]
then
    echo ERROR: Cinder API service should be running on the third controller.
    result="fail"
fi

ssh -o BatchMode=yes -o StrictHostKeyChecking=no project-ccp-controller-m3-ardana \
"ps auxww | grep cinder-scheduler | grep -v grep"
rc=$?

if [ "$rc" != "0" ]
then
    echo ERROR: Cinder Scheduler service should be running on the third controller.
    result="fail"
fi


if [ "$result" == "fail" ]
then
    echo FAILURE: Could not validate cinder services running on controllers, check error \
                  messages above for more details.
    exit -1
else
    echo SUCCESS: Validated cinder services running on expected controllers.
    exit 0
fi
07070100000033000041ED0000000000000000000000035F23024000000000000000000000000000000000000000000000003800000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci/tiny07070100000034000041ED0000000000000000000000035F23024000000000000000000000000000000000000000000000004400000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci/tiny/input-model07070100000035000041ED0000000000000000000000025F23024000000000000000000000000000000000000000000000004900000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci/tiny/input-model/data07070100000036000081A40000000000000000000000015F2302400000065F000000000000000000000000000000000000005B00000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci/tiny/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
            - mysql
            - ip-cluster
            - keystone-api
            - keystone-client
            - rabbitmq
            - openstack-client
            - cinder-api
            - cinder-scheduler
            - cinder-volume
            - cinder-backup
            - cinder-client
            - swift-ring-builder
            - swift-proxy
            - swift-account
            - swift-container
            - swift-object
            - swift-client
            - memcached
07070100000037000081A40000000000000000000000015F23024000000784000000000000000000000000000000000000005300000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci/tiny/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/sdc
          - name: /dev/sdd
        consumer:
          name: swift
          attrs:
            rings:
              - account
              - container
              - object-0
      - name: cinder-volume
        devices:
          - name: /dev/sde
        consumer:
          name: cinder
07070100000038000081A40000000000000000000000015F230240000003F6000000000000000000000000000000000000005500000000ardana-cinder-8.0+git.1596129856.263f430/ardana-ci/tiny/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
07070100000039000081A40000000000000000000000015F23024000000693000000000000000000000000000000000000004600000000ardana-cinder-8.0+git.1596129856.263f430/cinder-configure-monasca.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.
#
---

# The monasca agent tasks need to run after cinder has started
- hosts: CND-API:CND-BCK:CND-SCH:CND-VOL:&MON-AGN
  become: yes
  roles:
    - {role: monasca-agent, run_mode: Use}
    - cinder-monitor
  tasks:
  - include: roles/cinder-monitor/tasks/install.yml
  - include: roles/cinder-monitor/tasks/monasca_custom_plugins.yml
  - include: roles/cinder-monitor/tasks/monasca_agents.yml
    vars:
      cinder_agent: "True"
  - include: roles/cinder-monitor/tasks/monasca_alarms.yml
    vars:
      cinder_volume_monitor_state: present

- hosts: CND-API:&MON-AGN
  become: yes
  roles:
    - cinder-monitor
  tasks:
  - include: roles/cinder-monitor/tasks/monasca_api_alarms.yml

# Apply the monasca agent to backend nodes
- hosts: VSA-BLK:CEP-MON:CEP-OSD:&MON-AGN
  become: yes
  roles:
    - {role: monasca-agent, run_mode: Use}
    - cinder-monitor
  tasks:
  - include: roles/cinder-monitor/tasks/install.yml
  - include: roles/cinder-monitor/tasks/monasca_custom_plugins.yml
  - include: roles/cinder-monitor/tasks/monasca_agents.yml
0707010000003A000081A40000000000000000000000015F2302400000038B000000000000000000000000000000000000003B00000000ardana-cinder-8.0+git.1596129856.263f430/cinder-deploy.yml#
# (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: "cinder-deploy.yml"

- include: ses-deploy.yml
- include: _cinder-install.yml
- include: _cinder-configure.yml
- include: cinder-stop.yml
- include: cinder-start.yml
- include: _cinder-populate.yml

- include: pbfinish.yml
  vars:
    playbook_name: "cinder-deploy.yml"

0707010000003B000081A40000000000000000000000015F23024000000F12000000000000000000000000000000000000004300000000ardana-cinder-8.0+git.1596129856.263f430/cinder-migrate-volume.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.
#
---
# Usage:
# If the storage input model is not being used specify the index of the host
# which will run the Cinder volume and backup services in the cinder control
# plane specific fact file. The fact files for each control plane are on the
# lifecycle-manager in the /etc/ansible/facts.d directory. Each fact file
# should only contain the index number of the host which will run the
# Cinder volume and backup services. The host index numbers can be obtained
# by running the cinder-show-volume-hosts.yml playbook.
#
# After the relevant fact file(s) have been edited run the cinder migration
# playbook as follows:
#   ansible-playbook -i hosts/verb_hosts cinder-migrate-volume.yml \
#   --limit=<LIMIT_PATTERN>
# where LIMIT_PATTERN is the pattern used to limit the hosts selected to a
# specific control plane. The cinder-migrate-volume.yml has to be run for
# each control plane where migrations are needed.


# Verify that the specified host index is valid before
# performing migrate
- hosts: CND-VOL
  max_fail_percentage: 0
  roles:
    - guard-cluster
    - _CND-CMN
  tasks:
    - include: roles/_CND-CMN/tasks/check_migrate_hostindex.yml

# Confirm that Cinder volume and backup are being migrated
# to the expected host
# During CI tests, confirm_cinder_migrate is set to false
# and the migrate_confirmation playbook is not executed.
- hosts: CND-VOL
  vars:
    confirm_cinder_migrate: true
  roles:
    - _CND-CMN
  tasks:
      - include: roles/_CND-CMN/tasks/migrate_confirmation.yml
        when: confirm_cinder_migrate

# Stop cinder volume monitoring on all CND-VOL hosts.
# - avoid false alarms during migration
- hosts: CND-VOL:&MON-AGN
  become: yes
  roles:
    - {role: monasca-agent, run_mode: Use}
    - cinder-monitor
  tasks:
    - include: roles/cinder-monitor/tasks/monasca_alarms.yml
      vars:
        cinder_volume_monitor_state: absent

# Stop cinder volume on all CND-VOL hosts.
- hosts: CND-VOL
  become: yes
  roles:
    - CND-VOL
  tasks:
    - include: roles/CND-VOL/tasks/stop.yml

# Stop Cinder Backup on all CND-BCK hosts
- hosts: CND-BCK
  become: yes
  roles:
    - CND-BCK
  tasks:
    - include: roles/CND-BCK/tasks/stop.yml


# If config_data.CND is not defined the Cinder volume
# and backup services will only be started on the host
# specified in the cinder control plane specific fact file.
# If config_data.CND is defined Cinder Volume and Backup
# will be started on all CND-VOL hosts

- hosts: CND-VOL
  become: yes
  roles:
    - CND-VOL
  tasks:
    - include: roles/CND-VOL/tasks/start.yml
    - include: roles/CND-VOL/tasks/populate.yml

- hosts: CND-BCK
  become: yes
  roles:
    - CND-BCK
  tasks:
    - include: roles/CND-BCK/tasks/start.yml
    - include: roles/CND-BCK/tasks/populate.yml

# Start cinder volume monitoring on all CND-VOL hosts.
- hosts: CND-VOL:&MON-AGN
  become: yes
  roles:
    - {role: monasca-agent, run_mode: Use}
    - cinder-monitor
  tasks:
    - include: roles/cinder-monitor/tasks/monasca_alarms.yml
      vars:
        cinder_volume_monitor_state: present

# Mark variable for clearing from fact cache
- hosts: CND-VOL
  roles:
    - _CND-CMN
  tasks:
    - include: roles/_CND-CMN/tasks/_clear_cached_variable.yml
0707010000003C000081A40000000000000000000000015F2302400000039E000000000000000000000000000000000000005300000000ardana-cinder-8.0+git.1596129856.263f430/cinder-reconfigure-credentials-change.yml#
# (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: _cinder-configure.yml

- hosts: CND-API
  roles:
    - CND-API
  # This task should be set to run-once
  tasks:
    - include: roles/CND-API/tasks/keystone_change_pwd.yml
      ansible_python_interpreter: >
        {{ KEY_CLI.vars.keystone_client_python_interpreter }}

- include: cinder-start.yml
0707010000003D000081A40000000000000000000000015F230240000002A5000000000000000000000000000000000000004000000000ardana-cinder-8.0+git.1596129856.263f430/cinder-reconfigure.yml#
# (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: _cinder-configure.yml
- include: cinder-start.yml
0707010000003E000081A40000000000000000000000015F23024000000289000000000000000000000000000000000000003C00000000ardana-cinder-8.0+git.1596129856.263f430/cinder-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: _cinder-schedule-restart.yml

- include: cinder-start.yml
0707010000003F000081A40000000000000000000000015F23024000000312000000000000000000000000000000000000004600000000ardana-cinder-8.0+git.1596129856.263f430/cinder-show-volume-hosts.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.
#
---
# Display the Cinder volume hosts

- hosts: CND-VOL
  roles:
    - _CND-CMN
  tasks:
    - include: roles/_CND-CMN/tasks/show_volume_hosts.yml
07070100000040000081A40000000000000000000000015F23024000000568000000000000000000000000000000000000003A00000000ardana-cinder-8.0+git.1596129856.263f430/cinder-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: CND-API
  become: yes
  roles:
    - CND-API
  tasks:
    - include: roles/CND-API/tasks/start.yml

- hosts: CND-SCH
  become: yes
  roles:
    - CND-SCH
  tasks:
    - include: roles/CND-SCH/tasks/start.yml

- hosts: CND-VOL
  become: yes
  roles:
    - CND-VOL
  tasks:
    - include: roles/CND-VOL/tasks/start.yml

- hosts: CND-BCK
  become: yes
  roles:
    - CND-BCK
  tasks:
    - include: roles/CND-BCK/tasks/start.yml

- hosts: CND-VOL:NOV-CMP
  become: yes
  roles:
    - CND-SVC
  tasks:
    - include: roles/CND-SVC/tasks/start.yml

# Mark variable for clearing from fact cache
- hosts: CND-API:CND-BCK:CND-SCH:CND-VOL
  roles:
    - _CND-CMN
  tasks:
    - include: roles/_CND-CMN/tasks/_clear_cached_variable.yml
07070100000041000081A40000000000000000000000015F2302400000049F000000000000000000000000000000000000003B00000000ardana-cinder-8.0+git.1596129856.263f430/cinder-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.
#
---

- hosts: CND-API
  max_fail_percentage: 0
  become: yes
  roles:
    - CND-API
  tasks:
    - include: roles/CND-API/tasks/status.yml

- hosts: CND-SCH
  max_fail_percentage: 0
  become: yes
  roles:
    - CND-SCH
  tasks:
    - include: roles/CND-SCH/tasks/status.yml

- hosts: CND-VOL
  max_fail_percentage: 0
  become: yes
  roles:
    - CND-VOL
  tasks:
    - include: roles/CND-VOL/tasks/status.yml

- hosts: CND-BCK
  max_fail_percentage: 0
  become: yes
  roles:
    - CND-BCK
  tasks:
    - include: roles/CND-BCK/tasks/status.yml
07070100000042000081A40000000000000000000000015F23024000000438000000000000000000000000000000000000003900000000ardana-cinder-8.0+git.1596129856.263f430/cinder-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: CND-API
  become: yes
  roles:
    - CND-API
  tasks:
    - include: roles/CND-API/tasks/stop.yml

- hosts: CND-SCH
  become: yes
  roles:
    - CND-SCH
  tasks:
    - include: roles/CND-SCH/tasks/stop.yml

- hosts: CND-VOL
  become: yes
  roles:
    - CND-VOL
  tasks:
    - include: roles/CND-VOL/tasks/stop.yml

- hosts: CND-BCK
  become: yes
  roles:
    - CND-BCK
  tasks:
    - include: roles/CND-BCK/tasks/stop.yml
07070100000043000081A40000000000000000000000015F230240000004B9000000000000000000000000000000000000003C00000000ardana-cinder-8.0+git.1596129856.263f430/cinder-upgrade.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: cinder-status.yml
# Make sure ses is called so we have the facts.
- include: ses-deploy.yml

# Stop cinder volume on all CND-VOL hosts.
- hosts: CND-VOL
  become: yes
  roles:
    - CND-VOL
  tasks:
    - include: roles/CND-VOL/tasks/stop.yml
# Stop Cinder Backup on all CND-BCK hosts
- hosts: CND-BCK
  become: yes
  roles:
    - CND-BCK
  tasks:
    - include: roles/CND-BCK/tasks/stop.yml
- include: _cinder-install.yml
- include: _cinder-configure.yml
- include: cinder-start.yml
- include: _cinder-populate.yml
- include: cinder-status.yml
07070100000044000041ED0000000000000000000000025F23024000000000000000000000000000000000000000000000003000000000ardana-cinder-8.0+git.1596129856.263f430/config07070100000045000081A40000000000000000000000015F230240000004DA000000000000000000000000000000000000004400000000ardana-cinder-8.0+git.1596129856.263f430/config/cinder-symlinks.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 following relative symlinks are created under the
# my_cloud/config directory.
---
symlinks:
  "cinder/api.conf.j2": "roles/CND-API/templates/api.conf.j2"
  "cinder/backup.conf.j2": "roles/CND-BCK/templates/backup.conf.j2"
  "cinder/cinder.conf.j2": "roles/_CND-CMN/templates/cinder.conf.j2"
  "cinder/cinder_vol_run_location.yml": "roles/CND-VOL/vars/cinder_vol_run_location.yml"
  "cinder/scheduler.conf.j2": "roles/CND-SCH/templates/scheduler.conf.j2"
  "cinder/volume.conf.j2": "roles/CND-VOL/templates/volume.conf.j2"
  "cinder/policy.json.j2": "roles/CND-API/templates/policy.json.j2"
07070100000046000041ED0000000000000000000000025F23024000000000000000000000000000000000000000000000003800000000ardana-cinder-8.0+git.1596129856.263f430/filter_plugins07070100000047000081A40000000000000000000000015F2302400000064C000000000000000000000000000000000000004800000000ardana-cinder-8.0+git.1596129856.263f430/filter_plugins/device_group.py#
# (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.
#
# Usage :
#   {device_groups:[{name:N1, consumer:C1, ...},
#                   {name:N2, consumer:C2, ...},
#                   ...]} | device_group(N2, C2)
#     => {name:N2, consumer:C2, ...}


def device_group(data, dg_name, dg_consumer):
    output = None
    for dg in data.get("device_groups", []):
        # skip if doesn't match require name
        name = dg.get("name")
        if not name or name != dg_name:
            continue

        # skip if doesn't have a consumer entry
        consumer = dg.get("consumer")
        if not consumer:
            continue

        # skip if consumer name doesn't match required consumer
        consumer_name = consumer.get("name")
        if not consumer_name or consumer_name != dg_consumer:
            continue

        # found a matching device group, so return it
        output = dg
        break
    return output


class FilterModule(object):
    def filters(self):
        return {'device_group': device_group}
07070100000048000041ED0000000000000000000000095F23024000000000000000000000000000000000000000000000002F00000000ardana-cinder-8.0+git.1596129856.263f430/roles07070100000049000041ED0000000000000000000000075F23024000000000000000000000000000000000000000000000003700000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-API0707010000004A000041ED0000000000000000000000025F23024000000000000000000000000000000000000000000000004000000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-API/defaults0707010000004B000081A40000000000000000000000015F230240000006A5000000000000000000000000000000000000004900000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-API/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.
#
---

cinder_component: cinder-api
cinder_service_data: "{{ CND_API }}"
cinder_service_group_name: "{{ verb_hosts.CND_API }}"

# flag to track if venv activation is required during start
cinder_api_activate_required: false

# Default service directories
cinder_api_conf_dir: "{{ 'cinder-api' | config_dir() }}"
cinder_api_venv_share_dir: "{{ 'cinder-api' | share_dir() }}/cinder"

# Files that need to be symlinked from versioned conf dir to
# global conf dir
cinder_api_conf_symlinks:
  - { dst: '{{ cinder_dir }}/cinder.conf', src: 'cinder.conf' }

# Cinder API auditing settings
cinder_api_audit_enable: "{{ CND.audit.enabled }}"
cinder_audit_log_base_location: "{{ CND.audit.dir }}"
cinder_audit_notification_driver: log

cinder_public_endpoint: "{{ CND_API.advertises.vips.public[0].url }}"

cinder_glance_url: "{% if CND_API.consumes_GLA_API is defined %}{{ CND_API.consumes_GLA_API.vips.private[0].url }}{% endif %}"
cinder_keymgr_url: "{% if CND_API.consumes_KEYMGR_API is defined %}{{ CND_API.consumes_KEYMGR_API.vips.private[0].url }}{% endif %}"

0707010000004C000041ED0000000000000000000000025F23024000000000000000000000000000000000000000000000003C00000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-API/meta0707010000004D000081A40000000000000000000000015F230240000002A4000000000000000000000000000000000000004500000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-API/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: _CND-CMN
0707010000004E000041ED0000000000000000000000025F23024000000000000000000000000000000000000000000000003D00000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-API/tasks0707010000004F000081A40000000000000000000000015F23024000000DD8000000000000000000000000000000000000004B00000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-API/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.
#
---

- include: ../../_CND-CMN/tasks/configure.yml
  vars:
    cinder_conf_dir: "{{ cinder_api_conf_dir }}"
    cinder_conf_template: ../../CND-API/templates/api-cinder.conf.j2

- name: CND-API | configure | Generate "{{ cinder_api_conf_dir }}"/api.conf
  become: yes
  template:
    src: api.conf.j2
    dest: "{{ cinder_api_conf_dir }}/api.conf"
    owner: "{{ cinder_user }}"
    group: "{{ cinder_group }}"
    mode: 0400
  register: ardana_notify_cinder_api_restart_required

- name: CND-API | configure | Generate "{{ cinder_api_conf_dir }}"/api-paste.ini
  become: yes
  template:
    src: api-paste.ini.j2
    dest: "{{ cinder_api_conf_dir }}/api-paste.ini"
    owner: "{{ cinder_user }}"
    group: "{{ cinder_group }}"
    mode: 0400
  register: ardana_notify_cinder_api_restart_required

- name: CND-API | configure | Generate "{{ cinder_api_conf_dir }}"/api-logging.conf
  become: yes
  template:
    src: api-logging.conf.j2
    dest: "{{ cinder_api_conf_dir }}/api-logging.conf"
    owner: "{{ cinder_user }}"
    group: "{{ cinder_group }}"
    mode: 0400
  register: ardana_notify_cinder_api_restart_required

- name: CND-API | configure | Generate "{{ cinder_api_conf_dir }}"/api_audit_map.conf
  become: yes
  template:
    src: api_audit_map.conf.j2
    dest: "{{ cinder_api_conf_dir }}/api_audit_map.conf"
    owner: "{{ cinder_user }}"
    group: "{{ cinder_group }}"
    mode: 0400
  register: ardana_notify_cinder_api_restart_required

- name: CND-API | configure | Generate "{{ cinder_api_conf_dir }}"/policy.json
  become: yes
  template:
    src: policy.json.j2
    dest: "{{ cinder_api_conf_dir }}/policy.json"
    owner: "{{ cinder_user }}"
    group: "{{ cinder_group }}"
    mode: 0400

- name: CND-API | configure | Deprecate "{{ cinder_dir }}"/policy.json
  become: yes
  file:
    path: "{{ cinder_dir }}/policy.json"
    state: absent

- name: CND-API | configure | Modify cinder-api.log file attributes
  become: yes
  file:
    path: "{{ cinder_logs_dir }}/cinder-api.log"
    state: touch
    owner: cinder
    group: adm
    mode: 0640

- name: CND-API | configure | Modify cinder-api-json.log file attributes
  become: yes
  file:
    path: "{{ cinder_logs_dir }}/cinder-api-json.log"
    state: touch
    owner: cinder
    group: adm
    mode: 0640

- name: CND-API | configure | Create cinder audit directory structure if necessary
  file:
    path: "{{ cinder_audit_log_base_location }}/cinder"
    state: directory
    owner: "{{ cinder_user }}"
    group: "{{ cinder_group }}"
    mode: 0755
  become: yes
  when: cinder_api_audit_enable | bool

- name: CND-API | configure | Create/Modify cinder audit log files
  file:
    path: "{{ cinder_audit_log_base_location }}/cinder/{{ item }}"
    state: touch
    owner: "{{ cinder_user }}"
    group: adm
    mode: 0640
  become: yes
  with_items:
    - cinder-audit.log
  when: cinder_api_audit_enable | bool
07070100000050000081A40000000000000000000000015F23024000000702000000000000000000000000000000000000004E00000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-API/tasks/db_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: CND-API | db_configure | Sync Cinder DB (once cinder.conf is set up)
  become: yes
  become_user: cinder
  command: >
      "{{ cinder_common_bin_dir }}/cinder-manage"
      --config-file "{{ cinder_api_conf_dir }}/cinder.conf"
      --config-file "{{ cinder_api_conf_dir }}/api.conf"
      db sync
  run_once_per: verb_hosts.CND_API

# The following tasks assumes that the redundant Cinder Volume entry
# in the services table has a host value of ha-volume-manager. This is
# the default value of the host variable in cinder.conf.j2. If the
# host value in cinder.conf.j2 is different the redundant entry in the
# services table can be removed by running the cinder-manage service
# remove command substituting in the new host value
- name: CND-API | db_configure | Mark redundant Cinder Volume service deleted
  become: yes
  become_user: cinder
  command: >
      "{{ cinder_common_bin_dir }}/cinder-manage"
      --config-file "{{ cinder_api_conf_dir }}/cinder.conf"
      --config-file "{{ cinder_api_conf_dir }}/api.conf"
      service remove cinder-volume ha-volume-manager
  ignore_errors: yes
  run_once_per: verb_hosts.CND_API
07070100000051000081A40000000000000000000000015F2302400000073C000000000000000000000000000000000000004900000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-API/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.
#
---

# Install Cinder API

- include: ../../_CND-CMN/tasks/install.yml


- name: CND-API | install | Install Cinder API dependencies
  become: yes
  package:
    name: "{{ item }}"
    state: present
  with_items: cinder_api_dependencies
  ignore_errors: True

- name: CND-API | install | Update venv cache
  install_package:
    cache: update

- name: CND-API | install | Install Cinder API
  install_package:
    name: cinder
    service: cinder-api
    state: present
    activate: act_off
  register: ardana_notify_cinder_api_venv_install

- name: CND-API | install | Set service directories
  set_fact:
    cinder_api_conf_dir: >-
      {{ 'cinder-api' |
          config_dir(ardana_notify_cinder_api_venv_install.version) }}
    cinder_api_venv_share_dir: >-
      {{ 'cinder-api' |
          share_dir(ardana_notify_cinder_api_venv_install.version) }}/cinder"

- name: CND-API | install | Register the cinder-api service
  setup_systemd:
    service: cinder-api
    cmd: cinder-api
    user: cinder
    group: cinder
    args: >
      --config-file {{ cinder_api_conf_dir }}/cinder.conf
      --config-file {{ cinder_api_conf_dir }}/api.conf
  when: ardana_notify_cinder_api_venv_install.changed
07070100000052000081A40000000000000000000000015F23024000000786000000000000000000000000000000000000005500000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-API/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: CND-API | keystone_change_pwd | Get a domain scoped token
  keystone_v3:
    endpoint: "{{ cinder_keystone.admin_url }}"
    login_username: "{{ cinder_keystone.admin_user }}"
    login_password: "{{ cinder_keystone.admin_password }}"
    login_user_domain_name: "{{ cinder_keystone.default_domain_name }}"
    login_domain_name: "{{ cinder_keystone.default_domain_name }}"
    action: "token_get"
  run_once: true
  register: cinder_domain_scoped_token_result

- name: CND-API | keystone_change_pwd | Update cinder admin user password
  become: yes
  keystone_v3:
    login_token: "{{ cinder_domain_scoped_token_result.result }}"
    endpoint: "{{ cinder_keystone.admin_url }}"
    action: "reset_password_by_admin"
    user_name: "{{ cinder_identity_admin_user }}"
    user_password: "{{ cinder_identity_admin_password }}"
    user_domain_name: "Default"
  run_once: true

- name: CND-API | keystone_change_pwd | Update cinderinternal user password
  become: yes
  keystone_v3:
    login_token: "{{ cinder_domain_scoped_token_result.result }}"
    endpoint: "{{ cinder_keystone.admin_url }}"
    action: "reset_password_by_admin"
    user_name: "{{ cinderinternal_user }}"
    user_password: "{{ cinderinternal_password }}"
    user_domain_name: "Default"
  run_once: true
07070100000053000081A40000000000000000000000015F23024000000DF1000000000000000000000000000000000000004F00000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-API/tasks/keystone_conf.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: CND-API | keystone_conf | Get a domain scoped token
  keystone_v3:
    endpoint: "{{ cinder_keystone.admin_url }}"
    login_username: "{{ cinder_keystone.admin_user }}"
    login_password: "{{ cinder_keystone.admin_password }}"
    login_user_domain_name: "{{ cinder_keystone.default_domain_name }}"
    login_domain_name: "{{ cinder_keystone.default_domain_name }}"
    action: "token_get"
  run_once: true
  register: cinder_domain_scoped_token_result

- name: CND-API | keystone_conf | Create Cinder Keystone Service User in service tenant
  keystone_v3:
    action: "create_user"
    login_token: "{{ cinder_domain_scoped_token_result.result }}"
    endpoint: "{{ cinder_keystone.admin_url }}"
    user_name: "{{ cinder_identity_admin_user }}"
    user_domain_name: "Default"
    user_password: "{{ cinder_identity_admin_password }}"
  run_once: true

- name: CND-API | keystone_conf | Create Cinder Keystone Service user-role assignment for user cinder, role admin, tenant service
  keystone_v3:
    action: "grant_project_role"
    login_token: "{{ cinder_domain_scoped_token_result.result }}"
    endpoint: "{{ cinder_keystone.admin_url }}"
    user_name: "{{ cinder_identity_admin_user }}"
    project_name: "{{ cinder_keystone.admin_tenant_name }}"
    user_domain_name: "Default"
    project_domain_name: "Default"
    role_name: 'admin'
  run_once: true

- name: CND-API | keystone_conf | Create Cinder Admin role in Keystone
  keystone_v3:
    action: "create_role"
    endpoint: "{{ cinder_keystone.admin_url }}"
    login_token: "{{ cinder_domain_scoped_token_result.result }}"
    role_name: "cinder_admin"
    description: "Cinder admin role"
  run_once: true

- name: CND-API | keystone_conf | Create cinder internal project
  keystone_v3:
    action: "create_project"
    login_token: "{{ cinder_domain_scoped_token_result.result }}"
    endpoint: "{{ cinder_keystone.admin_url }}"
    project_name: "{{ cinderinternal_project_name }}"
    project_domain_name: "Default"
    description: "Cinder internal project"
  run_once: true

- name: CND-API | keystone_conf | Create cinder internal user
  keystone_v3:
    action: "create_user"
    login_token: "{{ cinder_domain_scoped_token_result.result }}"
    endpoint: "{{ cinder_keystone.admin_url }}"
    user_name: "{{ cinderinternal_user }}"
    user_domain_name: "Default"
    user_password: "{{ cinderinternal_password }}"
    description: "Cinder internal user"
  run_once: true

- name: CND-API | keystone_conf | Grant the cinder internal user the cinder_admin role
  keystone_v3:
    action: "grant_project_role"
    login_token: "{{ cinder_domain_scoped_token_result.result }}"
    endpoint: "{{ cinder_keystone.admin_url }}"
    user_name: "{{ cinderinternal_user }}"
    project_name: "{{ cinderinternal_project_name }}"
    user_domain_name: "Default"
    project_domain_name: "Default"
    role_name: 'cinder_admin'
  run_once: true
07070100000054000081A40000000000000000000000015F230240000009A6000000000000000000000000000000000000005300000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-API/tasks/keystone_get_conf.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: CND-API | keystone_get_conf | Get a domain scoped token
  keystone_v3:
    endpoint: "{{ cinder_keystone.admin_url }}"
    login_username: "{{ cinder_keystone.admin_user }}"
    login_password: "{{ cinder_keystone.admin_password }}"
    login_user_domain_name: "{{ cinder_keystone.default_domain_name }}"
    login_domain_name: "{{ cinder_keystone.default_domain_name }}"
    action: "token_get"
  run_once: true
  register: cinder_domain_scoped_token_result

- name: CND-API | keystone_get_conf | Find cinder internal project id
  keystone_v3:
    action: "find_project"
    login_token: "{{ cinder_domain_scoped_token_result.result }}"
    endpoint: "{{ cinder_keystone.admin_url }}"
    project_domain_name: "Default"
    project_name: "{{ cinderinternal_project_name }}"
  run_once: true
  register: cinderinternal_find_project_result

- name: CND-API | keystone_get_conf | Set cinder internal project id fact
  set_fact:
    cinderinternal_project_id: >-
      {{ cinderinternal_find_project_result.result.id }}
  run_once: true

- name: CND-API | keystone_get_conf | Find cinder internal user id
  keystone_v3:
    action: "find_user"
    login_token: "{{ cinder_domain_scoped_token_result.result }}"
    endpoint: "{{ cinder_keystone.admin_url }}"
    user_domain_name: "Default"
    user_name: "{{ cinderinternal_user }}"
  run_once: true
  register: cinderinternal_find_user_result

- name: CND-API | keystone_get_conf | Set cinder internal user id fact
  set_fact:
    cinderinternal_user_id: >-
      {{ cinderinternal_find_user_result.result.id }}
  run_once: true

- name: CND-API | keystone_get_conf | Display cinder internal project id and user id
  debug:
    msg: >
      Cinder Internal Project id is {{ cinderinternal_project_id }}
      and User id is {{ cinderinternal_user_id }}
  run_once: true
07070100000055000081A40000000000000000000000015F230240000002AD000000000000000000000000000000000000004600000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-API/tasks/main.yml#
# (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: CND-API | main | include OS specific variables
  include_vars: "{{ ansible_os_family | lower }}.yml"07070100000056000081A40000000000000000000000015F23024000000283000000000000000000000000000000000000004A00000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-API/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.
#
---
07070100000057000081A40000000000000000000000015F23024000000A3E000000000000000000000000000000000000004700000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-API/tasks/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.
#
---
- include: ../../_CND-CMN/tasks/_activate.yml

# Restart or start Cinder API
- name: CND-API | start | Activate the latest install
  install_package:
    name: cinder
    service: cinder-api
    activate: act_on
    version: "{{ ardana_notify_cinder_api_venv_install.version }}"
  when: not (ardana_notify_cinder_api_venv_install is not defined)

- name: CND-API | start | Update conf dir symlinks
  file:
    src: "{{ cinder_api_conf_dir }}/{{ item.src }}"
    dest: "{{ item.dst }}"
    owner: "{{ cinder_user }}"
    group: "{{ cinder_group }}"
    state: link
  when: not (ardana_notify_cinder_api_venv_install is not defined)
  with_items: cinder_api_conf_symlinks

# This is only relevant when upgrading from 2.x to 3.x or beyond
- name: CND-API | start | Check for outdated api_audit_map.conf link
  stat:
    path: "{{ cinder_dir }}/api_audit_map.conf"
  register: cinder_api_audit_map_stat_result

- name: CND-API | start | Remove api_audit_map.conf link if necessary
  file:
    path: "{{ cinder_dir }}/api_audit_map.conf"
    state: absent
  when: cinder_api_audit_map_stat_result.stat.islnk is defined and
        cinder_api_audit_map_stat_result.stat.islnk

- name: CND-API | start | Restart cinder-api service
  service:
    name: cinder-api
    state: restarted
  when: ((not (ardana_notify_cinder_restart_required is not defined)) and
        ardana_notify_cinder_restart_required.changed and
        cinder_api_restarted_result is not defined) or
        (ardana_notify_cinder_api_restart_required is defined and
        ardana_notify_cinder_api_restart_required.changed and
        cinder_api_restarted_result is not defined) or
        (ardana_notify_cinder_api_venv_install is defined and
        ardana_notify_cinder_api_venv_install.changed and
        cinder_api_restarted_result is not defined)
  register: cinder_api_restarted_result

- name: CND-API | start | Ensure cinder-api service is started
  service:
    name: cinder-api
    state: started
07070100000058000081A40000000000000000000000015F230240000002B9000000000000000000000000000000000000004800000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-API/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: ../../_CND-CMN/tasks/_service_status.yml

07070100000059000081A40000000000000000000000015F230240000002E2000000000000000000000000000000000000004600000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-API/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: CND-API | stop | Stop Cinder API service
  service: name=cinder-api state=stopped
0707010000005A000041ED0000000000000000000000025F23024000000000000000000000000000000000000000000000004100000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-API/templates0707010000005B000081A40000000000000000000000015F23024000000402000000000000000000000000000000000000005400000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-API/templates/api-cinder.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.
#
#}
{% extends "roles/_CND-CMN/templates/cinder.conf.j2" %}
{% block api_paste_config scoped %}
api_paste_config = {{ cinder_conf_dir }}/api-paste.ini
{% endblock api_paste_config %}
{% block audit_middleware scoped %}
{% if cinder_api_audit_enable | bool %}
[audit_middleware_notifications]
driver = {{ cinder_audit_notification_driver }}

{% endif %}
{% endblock audit_middleware %}
0707010000005C000081A40000000000000000000000015F2302400000078D000000000000000000000000000000000000005500000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-API/templates/api-logging.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.
#
#}
{% extends "roles/_CND-CMN/templates/cinder-logging.conf.j2" %}
{% block extend_loggers scoped %}{% if cinder_api_audit_enable | bool %}, audit{% endif %}{% endblock extend_loggers %}
{% block extend_handlers scoped %}{% if cinder_api_audit_enable | bool %}, audit{% endif %}{% endblock extend_handlers %}
{% block extend_formatters scoped %}{% if cinder_api_audit_enable | bool %}, minimal{% endif %}{% endblock extend_formatters %}
{% block audit_logger scoped %}
{% if cinder_api_audit_enable | bool %}

[logger_audit]
qualname: oslo.messaging.notification.audit
handlers: audit
propagate: 0
level: INFO
{% endif %}
{% endblock audit_logger %}
{% block audit_handler scoped %}
{% if cinder_api_audit_enable | bool %}

# Write audit messages to the cinder-audit.log file
[handler_audit]
class: handlers.WatchedFileHandler
args: ('{{ cinder_audit_log_base_location }}/cinder/cinder-audit.log',)
formatter: minimal
level: INFO
{% endif %}
{% endblock audit_handler %}
{% block audit_formatter scoped %}
{% if cinder_api_audit_enable | bool %}

# the minimal formatter
[formatter_minimal]
format=%(message)s
{% endif %}
{% endblock audit_formatter %}
{% block logfilename %}cinder-api{% endblock logfilename %}
{% block jsonlogfilename %}cinder-api-json{% endblock jsonlogfilename %}
0707010000005D000081A40000000000000000000000015F23024000000FC3000000000000000000000000000000000000005200000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-API/templates/api-paste.ini.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.
#
#}
#############
# OpenStack #
#############

[composite:osapi_volume]
use = call:cinder.api:root_app_factory
/: apiversions
/v1: openstack_volume_api_v1
/v2: openstack_volume_api_v2
/v3: openstack_volume_api_v3

[composite:openstack_volume_api_v1]
use = call:cinder.api.middleware.auth:pipeline_factory
noauth = ssl cors request_id faultwrap sizelimit osprofiler noauth apiv1
keystone = ssl cors request_id faultwrap sizelimit osprofiler authtoken keystonecontext
{%- if cinder_api_audit_enable | bool %} audit{% endif %}
 apiv1
keystone_nolimit = ssl cors request_id faultwrap sizelimit osprofiler authtoken keystonecontext
{%- if cinder_api_audit_enable | bool %} audit{% endif %}
 apiv1

[composite:openstack_volume_api_v2]
use = call:cinder.api.middleware.auth:pipeline_factory
noauth = ssl cors request_id faultwrap sizelimit osprofiler noauth apiv2
keystone = ssl cors request_id faultwrap sizelimit osprofiler authtoken keystonecontext
{%- if cinder_api_audit_enable | bool %} audit{% endif %}
 apiv2
keystone_nolimit = ssl cors request_id faultwrap sizelimit osprofiler authtoken keystonecontext
{%- if cinder_api_audit_enable | bool %} audit{% endif %}
 apiv2

[composite:openstack_volume_api_v3]
use = call:cinder.api.middleware.auth:pipeline_factory
noauth = ssl cors request_id faultwrap sizelimit osprofiler noauth apiv3
keystone = ssl cors request_id faultwrap sizelimit osprofiler authtoken keystonecontext
{%- if cinder_api_audit_enable | bool %} audit{% endif %}
 apiv3
keystone_nolimit = ssl cors request_id faultwrap sizelimit osprofiler authtoken keystonecontext
{%- if cinder_api_audit_enable | bool %} audit{% endif %}
 apiv3

[filter:request_id]
paste.filter_factory = oslo_middleware.request_id:RequestId.factory

[filter:cors]
paste.filter_factory = oslo_middleware.cors:filter_factory
oslo_config_project = cinder
latent_allow_headers = X-Auth-Token, X-Identity-Status, X-Roles, X-Service-Catalog, X-User-Id, X-Tenant-Id, X-OpenStack-Request-ID, X-Trace-Info, X-Trace-HMAC
latent_expose_headers = X-Auth-Token, X-Subject-Token, X-Service-Token, X-OpenStack-Request-ID
latent_allow_methods = GET, PUT, POST, DELETE, PATCH

[filter:faultwrap]
paste.filter_factory = cinder.api.middleware.fault:FaultWrapper.factory

[filter:osprofiler]
paste.filter_factory = osprofiler.web:WsgiMiddleware.factory
hmac_keys = SECRET_KEY
enabled = yes

[filter:noauth]
paste.filter_factory = cinder.api.middleware.auth:NoAuthMiddleware.factory

[filter:sizelimit]
paste.filter_factory = oslo_middleware.sizelimit:RequestBodySizeLimiter.factory

[filter:ssl]
paste.filter_factory = oslo_middleware.http_proxy_to_wsgi:HTTPProxyToWSGI.factory

[app:apiv1]
paste.app_factory = cinder.api.v1.router:APIRouter.factory

[app:apiv2]
paste.app_factory = cinder.api.v2.router:APIRouter.factory

[app:apiv3]
paste.app_factory = cinder.api.v3.router:APIRouter.factory

[pipeline:apiversions]
pipeline = ssl cors faultwrap osvolumeversionapp

[app:osvolumeversionapp]
paste.app_factory = cinder.api.versions:Versions.factory

##########
# Shared #
##########

[filter:keystonecontext]
paste.filter_factory = cinder.api.middleware.auth:CinderKeystoneContext.factory

[filter:authtoken]
paste.filter_factory = keystonemiddleware.auth_token:filter_factory

[filter:audit]
paste.filter_factory = keystonemiddleware.audit:filter_factory
audit_map_file = {{ cinder_api_conf_dir }}/api_audit_map.conf
0707010000005E000081A40000000000000000000000015F230240000002CC000000000000000000000000000000000000004D00000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-API/templates/api.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.
#
#}
[DEFAULT]
log_config_append={{ cinder_api_conf_dir }}/api-logging.conf
0707010000005F000081A40000000000000000000000015F2302400000055D000000000000000000000000000000000000005700000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-API/templates/api_audit_map.conf.j2{#
#
# (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.
#
#}
[DEFAULT]
# default target endpoint type
# should match the endpoint type defined in service catalog
target_endpoint_type = None

# map urls ending with specific text to a unique action
[custom_actions]
associate = update/associate
disassociate = update/disassociate
disassociate_all = update/disassociate_all
associations = read/list/associations

# possible end path of api requests
[path_keywords]
defaults = None
detail = None
limits = None
os-quota-specs = project
qos-specs = qos-spec
snapshots = snapshot
types = type
volumes = volume

# map endpoint type defined in service catalog to CADF typeURI
[service_endpoints]
volume = service/storage/block
volumev2 = service/storage/block
volumev3 = service/storage/block
07070100000060000081A40000000000000000000000015F23024000001E46000000000000000000000000000000000000005000000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-API/templates/policy.json.j2{
    "admin_or_owner":  "is_admin:True or role:cinder_admin or (role:admin and is_admin_project:True) or project_id:%(project_id)s",

    "default": "rule:admin_or_owner",

    "admin_api": "is_admin:True or role:cinder_admin or (role:admin and is_admin_project:True)",

    "volume:create": "",
    "volume:create_from_image": "",
    "volume:delete": "rule:admin_or_owner",
    "volume:force_delete": "rule:admin_api",
    "volume:get": "rule:admin_or_owner",
    "volume:get_all": "rule:admin_or_owner",
    "volume:get_volume_metadata": "rule:admin_or_owner",
    "volume:create_volume_metadata": "rule:admin_or_owner",
    "volume:delete_volume_metadata": "rule:admin_or_owner",
    "volume:update_volume_metadata": "rule:admin_or_owner",
    "volume:get_volume_admin_metadata": "rule:admin_api",
    "volume:update_volume_admin_metadata": "rule:admin_api",
    "volume:get_snapshot": "rule:admin_or_owner",
    "volume:get_all_snapshots": "rule:admin_or_owner",
    "volume:create_snapshot": "rule:admin_or_owner",
    "volume:delete_snapshot": "rule:admin_or_owner",
    "volume:update_snapshot": "rule:admin_or_owner",
    "volume:get_snapshot_metadata": "rule:admin_or_owner",
    "volume:delete_snapshot_metadata": "rule:admin_or_owner",
    "volume:update_snapshot_metadata": "rule:admin_or_owner",
    "volume:extend": "rule:admin_or_owner",
    "volume:extend_attached_volume": "rule:admin_or_owner",
    "volume:update_readonly_flag": "rule:admin_or_owner",
    "volume:retype": "rule:admin_or_owner",
    "volume:update": "rule:admin_or_owner",
    "volume:revert_to_snapshot": "rule:admin_or_owner",

    "volume_extension:types_manage": "rule:admin_api",
    "volume_extension:types_extra_specs:create": "rule:admin_api",
    "volume_extension:types_extra_specs:delete": "rule:admin_api",
    "volume_extension:types_extra_specs:index": "rule:admin_api",
    "volume_extension:types_extra_specs:show": "rule:admin_api",
    "volume_extension:types_extra_specs:update": "rule:admin_api",
    "volume_extension:access_types_qos_specs_id": "rule:admin_api",
    "volume_extension:access_types_extra_specs": "rule:admin_api",
    "volume_extension:volume_type_access": "rule:admin_or_owner",
    "volume_extension:volume_type_access:addProjectAccess": "rule:admin_api",
    "volume_extension:volume_type_access:removeProjectAccess": "rule:admin_api",
    "volume_extension:volume_type_encryption": "rule:admin_api",
    "volume_extension:volume_encryption_metadata": "rule:admin_or_owner",
    "volume_extension:extended_snapshot_attributes": "rule:admin_or_owner",
    "volume_extension:volume_image_metadata": "rule:admin_or_owner",

    "volume_extension:qos_specs_manage:create": "rule:admin_api",
    "volume_extension:qos_specs_manage:get": "rule:admin_api",
    "volume_extension:qos_specs_manage:get_all": "rule:admin_api",
    "volume_extension:qos_specs_manage:update": "rule:admin_api",
    "volume_extension:qos_specs_manage:delete": "rule:admin_api",

    "volume_extension:quotas:show": "",
    "volume_extension:quotas:update": "rule:admin_api",
    "volume_extension:quotas:delete": "rule:admin_api",
    "volume_extension:quota_classes": "rule:admin_api",
    "volume_extension:quota_classes:validate_setup_for_nested_quota_use": "rule:admin_api",

    "volume_extension:volume_admin_actions:reset_status": "rule:admin_api",
    "volume_extension:snapshot_admin_actions:reset_status": "rule:admin_api",
    "volume_extension:backup_admin_actions:reset_status": "rule:admin_api",
    "volume_extension:volume_admin_actions:force_delete": "rule:admin_api",
    "volume_extension:volume_admin_actions:force_detach": "rule:admin_api",
    "volume_extension:snapshot_admin_actions:force_delete": "rule:admin_api",
    "volume_extension:backup_admin_actions:force_delete": "rule:admin_api",
    "volume_extension:volume_admin_actions:migrate_volume": "rule:admin_api",
    "volume_extension:volume_admin_actions:migrate_volume_completion": "rule:admin_api",

    "volume_extension:volume_actions:upload_public": "rule:admin_api",
    "volume_extension:volume_actions:upload_image": "rule:admin_or_owner",

    "volume_extension:volume_host_attribute": "rule:admin_api",
    "volume_extension:volume_tenant_attribute": "rule:admin_or_owner",
    "volume_extension:volume_mig_status_attribute": "rule:admin_api",
    "volume_extension:hosts": "rule:admin_api",
    "volume_extension:services:index": "rule:admin_api",
    "volume_extension:services:update" : "rule:admin_api",

    "volume_extension:volume_manage": "rule:admin_api",
    "volume_extension:volume_unmanage": "rule:admin_api",
    "volume_extension:list_manageable": "rule:admin_api",

    "volume_extension:capabilities": "rule:admin_api",

    "volume:create_transfer": "rule:admin_or_owner",
    "volume:accept_transfer": "",
    "volume:delete_transfer": "rule:admin_or_owner",
    "volume:get_transfer": "rule:admin_or_owner",
    "volume:get_all_transfers": "rule:admin_or_owner",

    "volume:failover_host": "rule:admin_api",
    "volume:freeze_host": "rule:admin_api",
    "volume:thaw_host": "rule:admin_api",

    "backup:create" : "",
    "backup:delete": "rule:admin_or_owner",
    "backup:get": "rule:admin_or_owner",
    "backup:get_all": "rule:admin_or_owner",
    "backup:restore": "rule:admin_or_owner",
    "backup:backup-import": "rule:admin_api",
    "backup:backup-export": "rule:admin_api",
    "backup:update": "rule:admin_or_owner",
    "backup:backup_project_attribute": "rule:admin_api",

    "volume:attachment_create": "",
    "volume:attachment_update": "rule:admin_or_owner",
    "volume:attachment_delete": "rule:admin_or_owner",

    "snapshot_extension:snapshot_actions:update_snapshot_status": "",
    "snapshot_extension:snapshot_manage": "rule:admin_api",
    "snapshot_extension:snapshot_unmanage": "rule:admin_api",
    "snapshot_extension:list_manageable": "rule:admin_api",

    "consistencygroup:create" : "group:nobody",
    "consistencygroup:delete": "group:nobody",
    "consistencygroup:update": "group:nobody",
    "consistencygroup:get": "group:nobody",
    "consistencygroup:get_all": "group:nobody",

    "consistencygroup:create_cgsnapshot" : "group:nobody",
    "consistencygroup:delete_cgsnapshot": "group:nobody",
    "consistencygroup:get_cgsnapshot": "group:nobody",
    "consistencygroup:get_all_cgsnapshots": "group:nobody",

    "group:group_types_manage": "rule:admin_api",
    "group:group_types_specs": "rule:admin_api",
    "group:access_group_types_specs": "rule:admin_api",
    "group:group_type_access": "rule:admin_or_owner",

    "group:create" : "",
    "group:delete": "rule:admin_or_owner",
    "group:update": "rule:admin_or_owner",
    "group:get": "rule:admin_or_owner",
    "group:get_all": "rule:admin_or_owner",

    "group:create_group_snapshot": "",
    "group:delete_group_snapshot": "rule:admin_or_owner",
    "group:update_group_snapshot": "rule:admin_or_owner",
    "group:get_group_snapshot": "rule:admin_or_owner",
    "group:get_all_group_snapshots": "rule:admin_or_owner",
    "group:reset_group_snapshot_status":"rule:admin_api",
    "group:reset_status":"rule:admin_api",

    "group:enable_replication": "rule:admin_or_owner",
    "group:disable_replication": "rule:admin_or_owner",
    "group:failover_replication": "rule:admin_or_owner",
    "group:list_replication_targets": "rule:admin_or_owner",

    "scheduler_extension:scheduler_stats:get_pools" : "rule:admin_api",
    "message:delete": "rule:admin_or_owner",
    "message:get": "rule:admin_or_owner",
    "message:get_all": "rule:admin_or_owner",

    "clusters:get": "rule:admin_api",
    "clusters:get_all": "rule:admin_api",
    "clusters:update": "rule:admin_api",

    "workers:cleanup": "rule:admin_api"
}
07070100000061000041ED0000000000000000000000025F23024000000000000000000000000000000000000000000000003C00000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-API/vars07070100000062000081A40000000000000000000000015F23024000000280000000000000000000000000000000000000004700000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-API/vars/debian.yml#
# (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.
#
---
cinder_api_dependencies:
  - libmysqlclient18
  - libxslt1.107070100000063000081A40000000000000000000000015F230240000002AA000000000000000000000000000000000000004500000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-API/vars/suse.yml#
# (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.
#
---
cinder_api_dependencies:
  - libmysqlclient18
  - libxslt1
  - logrotate
  - openstack-suse-sudo
07070100000064000041ED0000000000000000000000065F23024000000000000000000000000000000000000000000000003700000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-BCK07070100000065000041ED0000000000000000000000025F23024000000000000000000000000000000000000000000000004000000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-BCK/defaults07070100000066000081A40000000000000000000000015F2302400000052F000000000000000000000000000000000000004900000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-BCK/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.
#
---

cinder_component: cinder-backup
cinder_service_data: "{{ CND_BCK }}"
cinder_service_group_name: "{{ verb_hosts.CND_BCK }}"

# flag to track if venv activation is required during start
cinder_backup_activate_required: false

cinder_keymgr_url: "{% if CND_BCK.consumes_KEYMGR_API is defined %}{{ CND_BCK.consumes_KEYMGR_API.vips.private[0].url }}{% endif %}"

cinder_backup_swift_url: "{% if CND_BCK.consumes_SWF_PRX is defined %}{{ CND_BCK.consumes_SWF_PRX.vips.private[0].url }}/v1/AUTH_{% endif %}"

# We force the log level for backup to WARNING because of a bug in
# eventlet as described here:
# https://github.com/eventlet/eventlet/issues/432
cinder_loglevel: WARNING
07070100000067000041ED0000000000000000000000025F23024000000000000000000000000000000000000000000000003C00000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-BCK/meta07070100000068000081A40000000000000000000000015F230240000002BA000000000000000000000000000000000000004500000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-BCK/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: _CND-CMN
    - role: CND-VOL
07070100000069000041ED0000000000000000000000025F23024000000000000000000000000000000000000000000000003D00000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-BCK/tasks0707010000006A000081A40000000000000000000000015F230240000003D1000000000000000000000000000000000000004B00000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-BCK/tasks/_activate.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.
#
---
- include: ../../_CND-CMN/tasks/_activate.yml

- name: CND-BCK | _activate | Activate the latest install
  install_package:
    name: cinder
    service: cinder-backup
    activate: act_on
    version: "{{ ardana_notify_cinder_backup_venv_install.version }}"
  when: not (ardana_notify_cinder_backup_venv_install is not defined)
0707010000006B000081A40000000000000000000000015F23024000000B69000000000000000000000000000000000000004B00000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-BCK/tasks/configure.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: CND-BCK | configure | obtain cinder backup version from package install
  set_fact:
    cinder_backup_version: "{{ ardana_notify_cinder_backup_venv_install.version }}"
  when: not (ardana_notify_cinder_backup_venv_install is not defined)

- name: CND-BCK | configure | obtain cinder backup version from {{ cinder_venv_root }}/
  shell: >
    readlink -f {{ cinder_venv_root }}/cinder-backup |
    sed 's#{{ cinder_venv_root }}/cinder-backup-##g'
  register: cinder_backup_link_result
  when: ardana_notify_cinder_backup_venv_install is not defined

- name: CND-BCK | configure | set backup version fact from link
  set_fact:
    cinder_backup_version: "{{ cinder_backup_link_result.stdout }}"
  when: ardana_notify_cinder_backup_venv_install is not defined

- name: CND-BCK | configure | set versioned cinder_backup_conf_dir fact
  set_fact:
    cinder_backup_conf_dir: >-
      {{ 'cinder-backup' | config_dir(cinder_backup_version) }}

- include: ../../CND-VOL/tasks/configure.yml
  vars:
    cinder_conf_dir: "{{ cinder_backup_conf_dir }}"
    cnd_configure_tgt: "False"

- name: CND-BCK | configure | Generate {{ cinder_backup_conf_dir }}/backup.conf
  template:
    src: backup.conf.j2
    dest: "{{ cinder_backup_conf_dir }}/backup.conf"
    owner: "{{ cinder_user }}"
    group: "{{ cinder_group }}"
    mode: 0400
  register: ardana_notify_cinder_backup_restart_required

# We force the log level for backup to WARNING because of a bug in
# eventlet as described here:
# https://github.com/eventlet/eventlet/issues/432
- name: CND-BCK | configure | Create '{{ cinder_backup_conf_dir }}'/backup-logging.conf
  template:
    src: backup-logging.conf.j2
    dest: "{{ cinder_backup_conf_dir }}/backup-logging.conf"
    owner: "{{ cinder_user }}"
    group: "{{ cinder_group }}"
    mode: 0400
  register: ardana_notify_cinder_backup_restart_required

- name: CND-BCK | configure | Modify cinder-backup.log file attributes
  file:
    path: "{{ cinder_logs_dir }}/cinder-backup.log"
    state: touch
    owner: cinder
    group: adm
    mode: 0640

- name: CND-BCK | configure | Modify cinder-backup-json.log file attributes
  file:
    path: "{{ cinder_logs_dir }}/cinder-backup-json.log"
    state: touch
    owner: cinder
    group: adm
    mode: 0640
0707010000006C000081A40000000000000000000000015F23024000000785000000000000000000000000000000000000004900000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-BCK/tasks/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.
#
---

# Install Cinder Backup

- include: ../../CND-VOL/tasks/install.yml cnd_stop_tgt="False"

# TODO(fergal): Remove once the fix for SOC-10522 has landed
# The cinder-backup services depends on the switfclient module
# but that module is currently missing from the Cinder venv.
- name: CND-BCK | install | Install cinder-backup dependencies
  package:
    name: "{{ item }}"
    state: present
  with_items:
    - python-swiftclient

- name: CND-BCK | install | Update venv cache
  install_package:
    cache: update

- name: CND-BCK | install | Install Cinder Backup
  install_package:
    name: cinder
    service: cinder-backup
    state: present
    activate: act_off
  register: ardana_notify_cinder_backup_venv_install

- name: CND-BCK | install | Set service directories
  set_fact:
    cinder_backup_conf_dir: >-
      {{ 'cinder-backup' |
          config_dir(ardana_notify_cinder_backup_venv_install.version) }}

- name: CND-BCK | install | Register the cinder-backup service
  setup_systemd:
    service: cinder-backup
    cmd: cinder-backup
    user: cinder
    group: cinder
    args: >
      --config-file {{ cinder_backup_conf_dir }}/cinder.conf
      --config-file {{ cinder_backup_conf_dir }}/backup.conf
  when: ardana_notify_cinder_backup_venv_install.changed
0707010000006D000081A40000000000000000000000015F23024000000283000000000000000000000000000000000000004A00000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-BCK/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.
#
---
0707010000006E000081A40000000000000000000000015F230240000006A9000000000000000000000000000000000000004700000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-BCK/tasks/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.
#
---
# Restart or start Cinder Backup

- include: ../../_CND-CMN/tasks/_determine_volume_host.yml

- include: ./_activate.yml

- name: CND-BCK | start | Restart cinder-backup service
  service:
    name: cinder-backup
    state: restarted
  when: (_cinder_volume_running_here | bool) and
        (((not (ardana_notify_cinder_restart_required is not defined)) and
        ardana_notify_cinder_restart_required.changed and
        cinder_backup_restarted_result is not defined) or
        (ardana_notify_cinder_backup_restart_required is defined and
        ardana_notify_cinder_backup_restart_required.changed and
        cinder_backup_restarted_result is not defined) or
        (ardana_notify_cinder_backup_venv_install is defined and
        ardana_notify_cinder_backup_venv_install.changed and
        cinder_backup_restarted_result is not defined))
  register: cinder_backup_restarted_result

- name: CND-BCK | start | Ensure cinder-backup service is started
  service:
    name: cinder-backup
    state: started
  when: (_cinder_volume_running_here | bool)
0707010000006F000081A40000000000000000000000015F230240000002B8000000000000000000000000000000000000004800000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-BCK/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: ../../_CND-CMN/tasks/_service_status.yml
07070100000070000081A40000000000000000000000015F230240000002E8000000000000000000000000000000000000004600000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-BCK/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: CND-BCK | stop | Stop Cinder Backup service
  service: name=cinder-backup state=stopped
07070100000071000041ED0000000000000000000000025F23024000000000000000000000000000000000000000000000004100000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-BCK/templates07070100000072000081A40000000000000000000000015F23024000000350000000000000000000000000000000000000005800000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-BCK/templates/backup-logging.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.
#
#}
{% extends "roles/_CND-CMN/templates/cinder-logging.conf.j2" %}
{% block logfilename %}cinder-backup{% endblock logfilename %}
{% block jsonlogfilename %}cinder-backup-json{% endblock jsonlogfilename %}
07070100000073000081A40000000000000000000000015F230240000002D2000000000000000000000000000000000000005000000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-BCK/templates/backup.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.
#
#}
[DEFAULT]
log_config_append={{ cinder_backup_conf_dir }}/backup-logging.conf
07070100000074000041ED0000000000000000000000065F23024000000000000000000000000000000000000000000000003700000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-SCH07070100000075000041ED0000000000000000000000025F23024000000000000000000000000000000000000000000000004000000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-SCH/defaults07070100000076000081A40000000000000000000000015F23024000000424000000000000000000000000000000000000004900000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-SCH/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.
#
---

cinder_component: cinder-scheduler
cinder_service_data: "{{ CND_SCH }}"
cinder_service_group_name: "{{ verb_hosts.CND_SCH }}"

# flag to track if venv activation is required during start
cinder_scheduler_activate_required: false

# Default service directories
cinder_scheduler_conf_dir: "{{ 'cinder-scheduler' | config_dir() }}"
cinder_scheduler_venv_share_dir: "{{ 'cinder-scheduler' | share_dir() }}/cinder"

07070100000077000041ED0000000000000000000000025F23024000000000000000000000000000000000000000000000003C00000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-SCH/meta07070100000078000081A40000000000000000000000015F230240000002A4000000000000000000000000000000000000004500000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-SCH/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: _CND-CMN
07070100000079000041ED0000000000000000000000025F23024000000000000000000000000000000000000000000000003D00000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-SCH/tasks0707010000007A000081A40000000000000000000000015F2302400000073B000000000000000000000000000000000000004B00000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-SCH/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.
#
---

- include: ../../_CND-CMN/tasks/configure.yml
  vars:
    cinder_conf_dir: "{{ cinder_scheduler_conf_dir }}"

- name: CND-SCH | configure | Generate {{ cinder_scheduler_conf_dir }}/scheduler.conf
  template:
    src: scheduler.conf.j2
    dest: "{{ cinder_scheduler_conf_dir }}/scheduler.conf"
    owner: "{{ cinder_user }}"
    group: "{{ cinder_group }}"
    mode: 0400
  register: ardana_notify_cinder_scheduler_restart_required

- name: CND-SCH | configure | Create '{{ cinder_scheduler_conf_dir }}'/scheduler-logging.conf
  template:
    src: scheduler-logging.conf.j2
    dest: "{{ cinder_scheduler_conf_dir }}/scheduler-logging.conf"
    owner: "{{ cinder_user }}"
    group: "{{ cinder_group }}"
    mode: 0400
  register: ardana_notify_cinder_scheduler_restart_required

- name: CND-SCH | configure | Modify cinder-scheduler.log file attributes
  file:
    path: "{{ cinder_logs_dir }}/cinder-scheduler.log"
    state: touch
    owner: cinder
    group: adm
    mode: 0640

- name: CND-SCH | configure | Modify Cinder cinder-scheduler-json.log file attributes
  file:
    path: "{{ cinder_logs_dir }}/cinder-scheduler-json.log"
    state: touch
    owner: cinder
    group: adm
    mode: 0640
0707010000007B000081A40000000000000000000000015F23024000000701000000000000000000000000000000000000004900000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-SCH/tasks/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.
#
---

# Install Cinder Scheduler

- include: ../../_CND-CMN/tasks/install.yml

- name: CND-SCH | install | Update venv cache
  install_package:
    cache: update

- name: CND-SCH | install | Install Cinder Scheduler
  install_package:
    name: cinder
    service: cinder-scheduler
    state: present
    activate: act_off
  register: ardana_notify_cinder_scheduler_venv_install

- name: CND-SCH | install | Set service directories
  set_fact:
    cinder_scheduler_conf_dir: >-
      {{ 'cinder-scheduler' |
          config_dir(ardana_notify_cinder_scheduler_venv_install.version) }}
    cinder_scheduler_venv_share_dir: >-
      {{ 'cinder-scheduler' |
          share_dir(
            ardana_notify_cinder_scheduler_venv_install.version) }}/cinder

# post-install tasks
- name: CND-SCH | install | Register the cinder-scheduler service
  setup_systemd:
    service: cinder-scheduler
    cmd: cinder-scheduler
    user: cinder
    group: cinder
    args: >
      --config-file {{ cinder_scheduler_conf_dir }}/cinder.conf
      --config-file {{ cinder_scheduler_conf_dir }}/scheduler.conf
  when: ardana_notify_cinder_scheduler_venv_install.changed
0707010000007C000081A40000000000000000000000015F23024000000283000000000000000000000000000000000000004A00000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-SCH/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.
#
---
0707010000007D000081A40000000000000000000000015F2302400000075A000000000000000000000000000000000000004700000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-SCH/tasks/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.
#
---
- include: ../../_CND-CMN/tasks/_activate.yml

# Restart or start Cinder Scheduler
- name: CND-SCH | start | Activate the latest install
  install_package:
    name: cinder
    service: cinder-scheduler
    activate: act_on
    version: "{{ ardana_notify_cinder_scheduler_venv_install.version }}"
  when: not (ardana_notify_cinder_scheduler_venv_install is not defined)

- name: CND-SCH | start | Restart cinder-scheduler service
  service:
    name: cinder-scheduler
    state: restarted
  when: ((not (ardana_notify_cinder_restart_required is not defined)) and
        ardana_notify_cinder_restart_required.changed and
        cinder_scheduler_restarted_result is not defined) or
        (ardana_notify_cinder_scheduler_restart_required is defined and
        ardana_notify_cinder_scheduler_restart_required.changed and
        cinder_scheduler_restarted_result is not defined) or
        (ardana_notify_cinder_scheduler_venv_install is defined and
        ardana_notify_cinder_scheduler_venv_install.changed and
        cinder_scheduler_restarted_result is not defined)
  register: cinder_scheduler_restarted_result

- name: CND-SCH | start | Start cinder-scheduler service
  service:
    name: cinder-scheduler
    state: started
0707010000007E000081A40000000000000000000000015F230240000002B8000000000000000000000000000000000000004800000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-SCH/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: ../../_CND-CMN/tasks/_service_status.yml
0707010000007F000081A40000000000000000000000015F230240000002EE000000000000000000000000000000000000004600000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-SCH/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: CND-SCH | stop | Stop Cinder Scheduler service
  service: name=cinder-scheduler state=stopped
07070100000080000041ED0000000000000000000000025F23024000000000000000000000000000000000000000000000004100000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-SCH/templates07070100000081000081A40000000000000000000000015F23024000000356000000000000000000000000000000000000005B00000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-SCH/templates/scheduler-logging.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.
#
#}
{% extends "roles/_CND-CMN/templates/cinder-logging.conf.j2" %}
{% block logfilename %}cinder-scheduler{% endblock logfilename %}
{% block jsonlogfilename %}cinder-scheduler-json{% endblock jsonlogfilename %}
07070100000082000081A40000000000000000000000015F230240000002D8000000000000000000000000000000000000005300000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-SCH/templates/scheduler.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.
#
#}
[DEFAULT]
log_config_append={{ cinder_scheduler_conf_dir }}/scheduler-logging.conf
07070100000083000041ED0000000000000000000000055F23024000000000000000000000000000000000000000000000003700000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-SVC07070100000084000041ED0000000000000000000000025F23024000000000000000000000000000000000000000000000004000000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-SVC/defaults07070100000085000081A40000000000000000000000015F23024000000283000000000000000000000000000000000000004900000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-SVC/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.
#
---
07070100000086000041ED0000000000000000000000025F23024000000000000000000000000000000000000000000000003D00000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-SVC/tasks07070100000087000081A40000000000000000000000015F23024000000283000000000000000000000000000000000000004B00000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-SVC/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.
#
---
07070100000088000081A40000000000000000000000015F230240000003CA000000000000000000000000000000000000004900000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-SVC/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.
#
---

# Install Cinder Service Dependencies

# Call out significant dependencies separately from main package
- name: CND-SVC | install | Install Cinder Client OS specific dependencies
  become: yes
  package:
    name: "{{ item }}"
    state: present
  with_items: cinder_service_client_dependencies
  ignore_errors: True07070100000089000081A40000000000000000000000015F230240000002AD000000000000000000000000000000000000004600000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-SVC/tasks/main.yml#
# (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: CND-SVC | main | include OS specific variables
  include_vars: "{{ ansible_os_family | lower }}.yml"0707010000008A000081A40000000000000000000000015F23024000000283000000000000000000000000000000000000004A00000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-SVC/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.
#
---
0707010000008B000081A40000000000000000000000015F2302400000047D000000000000000000000000000000000000004700000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-SVC/tasks/start.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: CND-SVC | start | Notify systemd of changes
  command: systemctl daemon-reload

- name: CND-SVC | start | Start open-iscsi service on Debian
  service: name=open-iscsi  state=started
  when: ansible_os_family == 'Debian'

- name: CND-SVC | start | Start open-iscsi service on RedHat
  service: name=iscsid  state=started
  when: ansible_os_family == 'RedHat'

- name: CND-SVC | start | Start open-iscsi service on Suse
  service: name=iscsid  state=started
  when: ansible_os_family == 'Suse'
0707010000008C000041ED0000000000000000000000025F23024000000000000000000000000000000000000000000000003C00000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-SVC/vars0707010000008D000081A40000000000000000000000015F23024000000293000000000000000000000000000000000000004700000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-SVC/vars/debian.yml#
# (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.
#
---
cinder_service_client_dependencies:
  - open-iscsi
  - sysfsutils
  - sg3-utils0707010000008E000081A40000000000000000000000015F2302400000029E000000000000000000000000000000000000004700000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-SVC/vars/redhat.yml#
# (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.
#
---
cinder_service_client_dependencies:
  - iscsi-initiator-utils
  - sysfsutils
  - sg3_utils0707010000008F000081A40000000000000000000000015F230240000002BF000000000000000000000000000000000000004500000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-SVC/vars/suse.yml#
# (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.
#
---
cinder_service_client_dependencies:
  - logrotate
  - open-iscsi
  - openstack-suse-sudo
  - sg3_utils
  - sysfsutils
07070100000090000041ED0000000000000000000000075F23024000000000000000000000000000000000000000000000003700000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-VOL07070100000091000041ED0000000000000000000000025F23024000000000000000000000000000000000000000000000004000000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-VOL/defaults07070100000092000081A40000000000000000000000015F23024000000514000000000000000000000000000000000000004900000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-VOL/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.
#
---

cinder_component: cinder-volume
cinder_service_data: "{{ CND_VOL }}"
cinder_service_group_name: "{{ verb_hosts.CND_VOL }}"

cinder_volumes_file_size_mb: 5000

# flag to track if venv activation is required during start
cinder_volume_activate_required: false

cinder_keymgr_url: "{% if CND_VOL.consumes_KEYMGR_API is defined %}{{ CND_VOL.consumes_KEYMGR_API.vips.private[0].url }}{% endif %}"
cinder_glance_url: "{% if CND_VOL.consumes_GLA_API is defined %}{{ CND_VOL.consumes_GLA_API.vips.private[0].url }}{% endif %}"
cinder_volume_nova_url: "{% if CND_VOL.consumes_NOV_API is defined %}{{ CND_VOL.consumes_NOV_API.vips.private[0].url }}{% endif %}"
07070100000093000041ED0000000000000000000000025F23024000000000000000000000000000000000000000000000003C00000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-VOL/meta07070100000094000081A40000000000000000000000015F230240000002A4000000000000000000000000000000000000004500000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-VOL/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: _CND-CMN
07070100000095000041ED0000000000000000000000025F23024000000000000000000000000000000000000000000000003D00000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-VOL/tasks07070100000096000081A40000000000000000000000015F230240000003D1000000000000000000000000000000000000004B00000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-VOL/tasks/_activate.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.
#
---
- include: ../../_CND-CMN/tasks/_activate.yml

- name: CND-VOL | _activate | Activate the latest install
  install_package:
    name: cinder
    service: cinder-volume
    activate: act_on
    version: "{{ ardana_notify_cinder_volume_venv_install.version }}"
  when: not (ardana_notify_cinder_volume_venv_install is not defined)
07070100000097000081A40000000000000000000000015F230240000006D8000000000000000000000000000000000000005500000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-VOL/tasks/_cinder_volume_vars.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: CND-VOL | _cinder_volume_vars | obtain cinder volume version from package install
  set_fact:
    cinder_volume_version: >-
      {{ ardana_notify_cinder_volume_venv_install.version }}
  when: not (ardana_notify_cinder_volume_venv_install is not defined)

- name: CND-VOL | _cinder_volume_vars | obtain cinder volume version from {{ cinder_venv_root }}/
  shell: >
    readlink -f {{ cinder_venv_root }}/cinder-volume |
    sed 's#{{ cinder_venv_root }}/cinder-volume-##g'
  register: cinder_volume_link_result
  when: ardana_notify_cinder_volume_venv_install is not defined

- name: CND-VOL | _cinder_volume_vars | set volume version fact from link
  set_fact:
    cinder_volume_version: "{{ cinder_volume_link_result.stdout }}"
  when: ardana_notify_cinder_volume_venv_install is not defined

- name: CND-VOL | _cinder_volume_vars | set versioned cinder_volume_conf_dir fact
  set_fact:
    cinder_volume_conf_dir: >-
      {{ 'cinder-volume' | config_dir(cinder_volume_version) }}
    cinder_volume_venv_share_dir: >-
      {{ 'cinder-volume' | share_dir(cinder_volume_version) }}/cinder
07070100000098000081A40000000000000000000000015F2302400000047C000000000000000000000000000000000000005800000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-VOL/tasks/_test_backends_enabled.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: ./_cinder_volume_vars.yml

- name: CND-VOL | _test_backends_enabled | awk cinder.conf for enabled_backends
  shell: >
     grep -qs
     "^[[:blank:]]*enabled_backends[[:blank:]]*=[[:blank:]]*[^[:blank:]].*" \
       "{{ cinder_volume_conf_dir }}"/cinder.conf \
     || echo NO_BACKENDS
  register: _cinder_backends_test_result

- name: set the backends bool default
  set_fact: _cinder_backends_enabled=False

- name: set the backends bool
  set_fact: _cinder_backends_enabled=True
  when: '"NO_BACKENDS" not in _cinder_backends_test_result.stdout_lines'
07070100000099000081A40000000000000000000000015F23024000001044000000000000000000000000000000000000004B00000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-VOL/tasks/configure.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: ./_cinder_volume_vars.yml

# Trying to render conf_dir in the include line results in infinite recursion.
# Since cinder_conf_dir may have already been set via CND-BCK role, which
# includes this task, we don't want to override with cinder_volume_conf_dir.
- name: CND-VOL | configure | Generate conf_dir path for common include
  set_fact:
    conf_dir: "{{ cinder_conf_dir | default(cinder_volume_conf_dir) }}"
- include: ../../_CND-CMN/tasks/configure.yml
  vars:
    cinder_conf_dir: "{{ conf_dir }}"

- name: CND-VOL | configure | Generate {{ cinder_volume_conf_dir }}/volume.conf
  template:
    src: volume.conf.j2
    dest: "{{ cinder_volume_conf_dir }}/volume.conf"
    owner: "{{ cinder_user }}"
    group: "{{ cinder_group }}"
    mode: 0400
  register: ardana_notify_cinder_volume_restart_required

- name: CND-VOL | configure | Create '{{ cinder_volume_conf_dir }}'/volume-logging.conf
  template:
    src: volume-logging.conf.j2
    dest: "{{ cinder_volume_conf_dir }}/volume-logging.conf"
    owner: "{{ cinder_user }}"
    group: "{{ cinder_group }}"
    mode: 0400
  register: ardana_notify_cinder_volume_restart_required

- name: CND-VOL | configure | Create several rootwrap volume.filters
  shell: >
    rsync -ciog --chmod=0400 --chown=root:root
    {{ cinder_volume_venv_share_dir }}/etc/cinder/{{ item }}
    {{ cinder_dir }}/{{ item }}
  register: rsync_result
  changed_when: 'rsync_result.stdout != ""'
  with_items:
    - rootwrap.d/volume.filters
  when: deployer_media_legacy_layout|bool


# Since this file is included by CND-BCK role, cnd_configure_tgt may
# have been set to False; if not default to True.
- name: CND-VOL | configure | Determine cinder_configure_tgt setting
  set_fact:
    cinder_configure_tgt: "{{ cnd_configure_tgt | default(True) }}"

- name: CND-VOL | configure | Set up tgtd
  file:
    path: /etc/tgt/conf.d
    owner: root
    group: root
    mode: 0755
    state: directory
  when: cinder_configure_tgt | bool

- name: CND-VOL | configure | Create the Cinder tgt configs directory
  file:
    path: "{{ cinder_state_path }}/volumes/"
    owner: cinder
    group: cinder
    mode: 0750
    state: directory
  when: cinder_configure_tgt | bool

- name: CND-VOL | configure | Set up Cinder volumes within tgtd
  template:
    src: etc/tgt/conf.d/cinder.conf.j2
    dest: /etc/tgt/conf.d/cinder.conf
    owner: root
    group: root
    mode: 0644
  when: cinder_configure_tgt | bool

- name: CND-VOL | configure | ensure cinder_tgt.conf (from package install) is deleted
  file:
    path: /etc/tgt/conf.d/cinder_tgt.conf
    state: absent
  when: cinder_configure_tgt | bool

- name: CND-VOL | configure | Setup volume group for LVM if needed
  lvg:
    vg: cinder-volumes
    pvs: "{{ cinder_lvm_device_group.devices[0].name }}"
  when: cinder_lvm_device_group

# When upgrading from prvious versions remove the now redundant
# cindervolume.fact file. This task can be removed at a future date
- name: CND-VOL | configure | Delete cindervolume.fact file if present
  file:
    path: /etc/ansible/facts.d/cindervolume.fact
    state: absent

- name: CND-VOL | configure | Modify cinder-volume.log file attributes
  file:
    path: "{{ cinder_logs_dir }}/cinder-volume.log"
    state: touch
    owner: cinder
    group: adm
    mode: 0640

- name: CND-VOL | configure | Modify cinder-volume-json.log file attributes
  file:
    path: "{{ cinder_logs_dir }}/cinder-volume-json.log"
    state: touch
    owner: cinder
    group: adm
    mode: 0640
0707010000009A000081A40000000000000000000000015F2302400000093A000000000000000000000000000000000000004900000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-VOL/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.
#
---

# Install Cinder Volume

- name: CND-VOL | install | Determin cinder_stop_tgt setting
  set_fact:
    cinder_stop_tgt: "{{ cnd_stop_tgt | default(True) }}"

- include: ../../_CND-CMN/tasks/install.yml

# Call out significant dependencies separately from main package
- name: CND-VOL | install | Install Cinder Volume dependencies
  become: yes
  package:
    name: "{{ item }}"
    state: present
  with_items: cinder_volume_dependencies
  ignore_errors: True
  register: install_vol_deps_pkg_check_result

- name: CND-VOL | install | Stop the tgt daemon
  service:
    name: "{{ cinder_tgt_service_name }}"
    state: stopped
  when: install_vol_deps_pkg_check_result and cinder_stop_tgt == True

- name: CND-VOL | install | Update venv cache
  install_package:
    cache: update

- name: CND-VOL | install | Install Cinder Volume
  install_package:
    name: cinder
    service: cinder-volume
    state: present
    activate: act_off
  register: ardana_notify_cinder_volume_venv_install

- name: CND-VOL | install | Set service directories
  set_fact:
    cinder_volume_conf_dir: >-
      {{ 'cinder-volume' |
          config_dir(ardana_notify_cinder_volume_venv_install.version) }}
    cinder_volume_venv_share_dir: >-
      {{ 'cinder-volume' |
          share_dir(ardana_notify_cinder_volume_venv_install.version) }}/cinder

# post-install tasks
- name: CND-VOL | install | Register the cinder-volume service
  setup_systemd:
    service: cinder-volume
    cmd: cinder-volume
    user: cinder
    group: cinder
    args: >
      --config-file {{ cinder_volume_conf_dir }}/cinder.conf
      --config-file {{ cinder_volume_conf_dir }}/volume.conf
  when: ardana_notify_cinder_volume_venv_install.changed
0707010000009B000081A40000000000000000000000015F230240000002AD000000000000000000000000000000000000004600000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-VOL/tasks/main.yml#
# (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: CND-SVC | main | include OS specific variables
  include_vars: "{{ ansible_os_family | lower }}.yml"0707010000009C000081A40000000000000000000000015F23024000000283000000000000000000000000000000000000004A00000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-VOL/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.
#
---
0707010000009D000081A40000000000000000000000015F23024000000A64000000000000000000000000000000000000004700000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-VOL/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.
#
---
# Restart or start Cinder Volume

- include: ../../_CND-CMN/tasks/_determine_volume_host.yml

- include: ./_activate.yml

# test to see if rendered cinder.conf has enabled_backends set
- include: ./_test_backends_enabled.yml

- name: CND-VOL | start | Start tgt service
  service:
    name: "{{ cinder_tgt_service_name }}"
    state: started

- name: CND-VOL | start | Restart cinder-volume service
  service:
    name: cinder-volume
    state: restarted
  when: (_cinder_volume_running_here | bool) and
        (_cinder_backends_enabled | bool) and
        (((not (ardana_notify_cinder_restart_required is not defined)) and
        ardana_notify_cinder_restart_required.changed and
        cinder_volume_restarted_result is not defined) or
        (ardana_notify_cinder_volume_restart_required is defined and
        ardana_notify_cinder_volume_restart_required.changed and
        cinder_volume_restarted_result is not defined) or
        (ardana_notify_cinder_volume_venv_install is defined and
        ardana_notify_cinder_volume_venv_install.changed and
        cinder_volume_restarted_result is not defined))
  register: cinder_volume_restarted_result

- name: CND-VOL | start | Ensure cinder-volume service is started
  service:
    name: cinder-volume
    state: started
  when: (_cinder_volume_running_here | bool) and
        (_cinder_backends_enabled | bool)

# This creates the local cinder fact file. On the initial deploy the value
# written to the file will be the default index value of 0. This file is only
# written to if the storage input model is not defined
- name: CND-VOL | start | Write host index to control plane fact file on localhost
  become: yes
  delegate_to: localhost
  copy:
    dest: "{{ cinder_volume_run_loc_file }}"
    content: "{{ groups[verb_hosts.CND_VOL].index(inventory_hostname) }}"
    mode: 0644
  when: ((_cinder_volume_running_here | bool) and
         ((config_data is not defined) or
          (config_data is defined and config_data.CND is not defined)))
0707010000009E000081A40000000000000000000000015F2302400000030F000000000000000000000000000000000000004800000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-VOL/tasks/status.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: ./_test_backends_enabled.yml

- include: ../../_CND-CMN/tasks/_service_status.yml
  when: (_cinder_backends_enabled | bool)
0707010000009F000081A40000000000000000000000015F230240000003BE000000000000000000000000000000000000004600000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-VOL/tasks/stop.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: ./_test_backends_enabled.yml

- name: CND-VOL | stop | Stop tgt service
  service:
    name: "{{ cinder_tgt_service_name }}"
    state: stopped

- name: CND-VOL | stop | Stop Cinder Volume service
  service:
    name: cinder-volume
    state: stopped
  when: (_cinder_backends_enabled | bool)
070701000000A0000081A40000000000000000000000015F230240000004CF000000000000000000000000000000000000005100000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-VOL/tasks/validate-config.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.
#
---

# This task checks that a deployment does not try to use both jinja2 and the
# storage input model to configure backends. The test is that if the directory
# ~/openstack/my_cloud/definition/data/cinder/ exists, then there should be no
# backends enabled in cinder.conf.j2
- name: CND-VOL | validate-config | Cannot mix input model and jinja2 configs
  command: >
        grep -q '^enabled_backends=[[:space:]]*$'
        roles/_CND-CMN/templates/cinder.conf.j2
  args:
    removes: ../../../../../openstack/my_cloud/definition/data/cinder/
  delegate_to: localhost
  run_once: true
070701000000A1000041ED0000000000000000000000035F23024000000000000000000000000000000000000000000000004100000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-VOL/templates070701000000A2000041ED0000000000000000000000035F23024000000000000000000000000000000000000000000000004500000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-VOL/templates/etc070701000000A3000041ED0000000000000000000000035F23024000000000000000000000000000000000000000000000004900000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-VOL/templates/etc/tgt070701000000A4000041ED0000000000000000000000025F23024000000000000000000000000000000000000000000000005000000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-VOL/templates/etc/tgt/conf.d070701000000A5000081A40000000000000000000000015F230240000002AF000000000000000000000000000000000000005F00000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-VOL/templates/etc/tgt/conf.d/cinder.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.
#
#}
include {{ cinder_state_path }}/volumes/*
070701000000A6000081A40000000000000000000000015F23024000000350000000000000000000000000000000000000005800000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-VOL/templates/volume-logging.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.
#
#}
{% extends "roles/_CND-CMN/templates/cinder-logging.conf.j2" %}
{% block logfilename %}cinder-volume{% endblock logfilename %}
{% block jsonlogfilename %}cinder-volume-json{% endblock jsonlogfilename %}
070701000000A7000081A40000000000000000000000015F230240000002D1000000000000000000000000000000000000005000000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-VOL/templates/volume.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.
#
#}
[DEFAULT]
log_config_append={{cinder_volume_conf_dir }}/volume-logging.conf
070701000000A8000041ED0000000000000000000000025F23024000000000000000000000000000000000000000000000003C00000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-VOL/vars070701000000A9000081A40000000000000000000000015F230240000006B9000000000000000000000000000000000000005800000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-VOL/vars/cinder_vol_run_location.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.
#
---
# The cinder_vol_host_index value specifies the index in the list of CND-VOL
# nodes of the host where the Cinder Volume service runs. To
# migrate Cinder Volume and Backup to another CND-VOL node, please specify
# the appropriate index value for that node. Leave a space between the colon
# and the index number.
# Note: If the storage input model is defined the cinder_vol_host_index value
# will be ignored and a default assignment of backends to nodes will be used.
# This default assignemnt can be overridden by specifying the assignment of
# backends to nodes in the cinder_backend_assignment.yml file.

cinder_vol_host_index: 0

# Do not edit the following lines
_cinder_volume_running_here: >-
    {{ (config_data is not defined and cinder_vol_host_index ==
         groups[verb_hosts.CND_VOL].index(inventory_hostname)) or
       ((config_data is defined and config_data.CND is not defined) and
         (cinder_vol_host_index ==
          groups[verb_hosts.CND_VOL].index(inventory_hostname))) or
       (config_data is defined and config_data.CND is defined) }}
070701000000AA000081A40000000000000000000000015F230240000002C7000000000000000000000000000000000000004700000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-VOL/vars/debian.yml#
# (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.
#
---
cinder_volume_dependencies:
  - lvm2
  - qemu-utils
  - sg3-utils
  - tgt
  - thin-provisioning-tools

cinder_tgt_service_name: tgt070701000000AB000081A40000000000000000000000015F230240000002E8000000000000000000000000000000000000004500000000ardana-cinder-8.0+git.1596129856.263f430/roles/CND-VOL/vars/suse.yml#
# (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.
#
---
cinder_volume_dependencies:
  - lvm2
  - openstack-suse-sudo
  - qemu-tools
  - sg3_utils
  # - thin-provisioning-tools
  - tgt

cinder_tgt_service_name: tgtd
070701000000AC000041ED0000000000000000000000085F23024000000000000000000000000000000000000000000000003800000000ardana-cinder-8.0+git.1596129856.263f430/roles/_CND-CMN070701000000AD000041ED0000000000000000000000025F23024000000000000000000000000000000000000000000000004100000000ardana-cinder-8.0+git.1596129856.263f430/roles/_CND-CMN/defaults070701000000AE000081A40000000000000000000000015F23024000001A78000000000000000000000000000000000000004A00000000ardana-cinder-8.0+git.1596129856.263f430/roles/_CND-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.
#
---

cinder_user: cinder
cinder_group: cinder
cinder_home_dir: /var/lib/cinder
mon_agent_group: monasca

# Number of maximum worker allowed regardless of CPUs available
osapi_volume_max_workers: 8

# Number of workers for osapi volume workers. The default will be the
# maximum allowed by variable osapi_volume_max_workers
osapi_volume_worker_count: "{{ ansible_processor_count * ansible_processor_cores * 2 | default('{{ osapi_volume_max_workers }}') }}"

# directories
cinder_dir: /etc/cinder
cinder_rootwrap_dir: /etc/cinder/rootwrap.d
cinderlm_conf_dir: /etc/cinderlm
cinder_logs_dir: /var/log/cinder
cinder_state_path: /var/lib/cinder
# TODO: set image_conversion_dir
cinder_image_conversion_dir: /var/lib/cinder
# TODO: remove in 4.0 cycle
installation_directory: /usr/share
cinder_venv_root: /opt/stack/service
cinder_facts_dir: /etc/ansible/facts.d

# logging
cinder_debug: True

cinder_loglevel: "{{ ardana_loglevel | default('INFO') }}"
cinder_logstash_loglevel: "{{ ardana_loglevel | default('INFO') }}"

cinder_iscsi_helper: tgtadm
#cinder_keymgr_fixed_key:
cinder_control_exchange: cinder
cinder_notification_driver: messaging
cinder_notification_backend: "rabbit"
cinder_osapi_volume_listen: "{{ host.bind.CND_API.internal.ip_address }}"
cinder_osapi_volume_listen_port: "{{ host.bind.CND_API.internal.port }}"

# database ssl
cinder_db_ca_file: "{{ trusted_ca_bundle }}"
cinder_db_ssl: >-
    {% if CND_API.consumes_FND_MDB.vips.private[0].use_tls -%}
    ?ssl_ca={{ cinder_db_ca_file }}
    {% endif %}

# database
# DB password and host set by configure
cinder_db: "mysql+pymysql://{{ CND.consumes_FND_MDB.vars.accounts.cinder.username }}:\
            {{ CND.consumes_FND_MDB.vars.accounts.cinder.password | urlencode }}@\
            {{ CND.consumes_FND_MDB.vips.private[0].host }}/cinder{{ cinder_db_ssl }}"
cinder_max_overflow: 500
cinder_max_pool_size: 500
cinder_min_pool_size: 100

# Keystone
cinder_keystone:
  admin_tenant_name: "{{ KEY_API.vars.keystone_service_tenant }}"
  admin_user: "{{ KEY_API.vars.keystone_admin_user }}"
  admin_password: "{{ KEY_API.vars.keystone_admin_pwd | quote }}"
  default_domain_name: "{{ KEY_API.vars.keystone_default_domain }}"
  admin_url: "{{ CND_API.consumes_KEY_API.vips.private[0].url }}/v3"
  identity_admin_url: "{{ CND_API.consumes_KEY_API.vips.private[0].url }}"
  identity_v2_admin_url: "{{ CND_API.consumes_KEY_API.vips.private[0].url }}/v2.0"
  region_name: "{{ CND_API.advertises.vips.public[0].region_name }}"
  internal_url: "{{ CND_API.consumes_KEY_API.vips.private[0].url }}"
  monasca_tenant: "{{ KEY_API.vars.keystone_admin_tenant }}"
  cacert_file: "{{ trusted_ca_bundle }}"
  memcached_servers: "{% for x in CND.consumes_FND_MEM.members.private %}{{ x.host }}:{{ x.port }}{%if not loop.last %},{% endif %}{% endfor %}"
  memcache_secret_key: "{{ CND.consumes_FND_MEM.vars.memcached.cinder.secret_key | quote }}"

cinder_identity_admin_user: >
    {{ CND_API | item('consumes_KEY_API.vars.keystone_cinder_user',
                      default='cinder') }}
cinder_identity_admin_password: >
    {{ CND_API | item('consumes_KEY_API.vars.keystone_cinder_password',
                 default='cindre') }}

cinderlm_capacity_check: "{% if CND_API is defined %}True{% else %}False{% endif %}"

cinderinternal_user: >
    {{ CND_API | item('consumes_KEY_API.vars.keystone_cinderinternal_user',
                      default='cinderinternal') }}
cinderinternal_password: >
    {{ CND_API | item('consumes_KEY_API.vars.keystone_cinderinternal_password',
                      default='cindreinternal') }}
cinderinternal_project_name: >
    {{ CND_API | item('consumes_KEY_API.vars.keystone_cinderinternal_tenant',
                      default='cinderinternal') }}

# Rabbit
cinder_rabbit_userid: "{{ CND.consumes_FND_RMQ.vars.accounts.cinder.username }}"
cinder_rabbit_password: "{{ CND.consumes_FND_RMQ.vars.accounts.cinder.password }}"
cinder_rabbit_use_ssl: "{{ CND.consumes_FND_RMQ.members.private[0].use_tls }}"
cinder_rabbit_hosts_transport_url: >
  {%- for x in CND.consumes_FND_RMQ.members.private -%}
    {{ cinder_rabbit_userid }}:{{ cinder_rabbit_password }}@{{ x.host }}:{{ x.port }}{%- if not loop.last -%},{%- endif -%}
  {%- endfor -%}

# Default service directories
cinder_common_conf_dir: "{{ 'cinder-common' | config_dir() }}"
cinder_common_bin_dir: "{{ 'cinder-common' | bin_dir }}"
cinder_common_venv_share_dir: "{{ 'cinder-common' | share_dir }}/cinder"

cinder_logging_context_formatter: oslo_log.formatters.ContextFormatter

# cinder_lvm_device_group will test as false if no matching device group is found
cinder_lvm_device_group: "{{ host.my_disk_models | device_group('cinder-volume', 'cinder') }}"

# Cinder volume singleton tracking variables

cinder_volume_run_loc_file: "{{ cinder_facts_dir }}/\
                             cinder_volume_run_location_\
                             {{ host.my_dimensions.control_plane }}.fact"
cinder_backend_assignment_file: "{{ cinder_facts_dir }}/\
                                 cinder_backend_assignment.fact"
# By default cinder volume and backup are started on the host in each control plane
# with index 0. This can be overridden by specifying a value in the local cinder fact
# file or by defining a storage input model.
cinder_volume_host_index: 0
_cinder_volume_running_here: False

## Cinder SES Integration
cinder_ses_enabled: "{{ 'True' if ses_cinder_user_name is defined else 'False' }}"
cinder_ses_pool_name: "{{ ses_cinder_pool_name | default('') }}"
cinder_ses_user_name: "{{ ses_cinder_user_name | default('') }}"
cinder_ses_ceph_conf_file_path: "{{ ses_conf_file_path | default('') }}"
cinder_ses_secret_uuid: "{{ ses_cinder_secret_uuid | default('') }}"
cinder_ses_flatten_volume_from_snapshot: False

# Cinder-Backup SES Integration
cinder_backup_ses_enabled: "{{ 'True' if ses_cinder_backup_user_name is defined else 'False' }}"
cinder_backup_ses_pool_name: "{{ ses_cinder_backup_pool_name | default('') }}"
cinder_backup_ses_user_name: "{{ ses_cinder_backup_user_name | default('') }}"
cinder_backup_ses_ceph_conf_file_path: "{{ ses_conf_file_path | default('') }}"
070701000000AF000041ED0000000000000000000000035F23024000000000000000000000000000000000000000000000003E00000000ardana-cinder-8.0+git.1596129856.263f430/roles/_CND-CMN/files070701000000B0000041ED0000000000000000000000035F23024000000000000000000000000000000000000000000000004200000000ardana-cinder-8.0+git.1596129856.263f430/roles/_CND-CMN/files/etc070701000000B1000041ED0000000000000000000000025F23024000000000000000000000000000000000000000000000004C00000000ardana-cinder-8.0+git.1596129856.263f430/roles/_CND-CMN/files/etc/sudoers.d070701000000B2000081A40000000000000000000000015F23024000000076000000000000000000000000000000000000005C00000000ardana-cinder-8.0+git.1596129856.263f430/roles/_CND-CMN/files/etc/sudoers.d/cinder-rootwrapDefaults:cinder !requiretty

cinder ALL = (root) NOPASSWD: /usr/local/bin/cinder-rootwrap /etc/cinder/rootwrap.conf *
070701000000B3000041ED0000000000000000000000025F23024000000000000000000000000000000000000000000000004000000000ardana-cinder-8.0+git.1596129856.263f430/roles/_CND-CMN/library070701000000B4000081A40000000000000000000000015F23024000003969000000000000000000000000000000000000005800000000ardana-cinder-8.0+git.1596129856.263f430/roles/_CND-CMN/library/get_enabled_backends.py#!/usr/bin/python
#
# (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.
#

DOCUMENTATION = '''
---
module: get_enabled_backends
short_description: constructs a list of enabled backends.
description:
     - The module accepts a cinder config structure and returns a string
     comprising a list of enabled backends.
options:
  cinder_config:
    description:
      - Cinder config data
    required: true
    default: null
author:
'''

EXAMPLES = '''
# Example from Ansible Playbooks.
- get_enabled_backends: cinder_config = '{{ config_data.CND | to_json }}'

# Returns string comprising a list of the enabled backends.

# NOTE: Please use single quotes for host info converted to JSON as
# double quotes will cause argument errors
'''

from ansible.module_utils.basic import *    # NOQA
from subprocess import PIPE, Popen


class openssl:
    # Lifted from ardanaencrypt.py
    # For upgrade cases, need to support existing encrypted values which may
    # have legacy prefix in-use.
    prefix = '@ardana@'
    legacy_prefix = '@hos@'

    def __init__(self, key=None):
        self._decrypt_key = key

    def delegate(self, cmd, value):
        argv = ('/usr/bin/openssl', 'aes-256-cbc', '-a', cmd,
                '-pass', 'pass:%s' % self._decrypt_key)
        p = Popen(argv, close_fds=True, stdin=PIPE, stdout=PIPE, stderr=PIPE)
        result = p.communicate(input=value)
        if p.returncode != 0:
            errmsg = result[1].strip()
            if errmsg.startswith('bad decrypt'):
                errmsg = 'incorrect encryption key'
            elif (errmsg.startswith('error reading input file') or
                  errmsg.startswith('bad magic number')):
                errmsg = 'bad input data'
            raise OSError('openssl: %s' % errmsg)
        return result[0].strip()

    def decrypt(self, cooked):
        if cooked.startswith(openssl.prefix):
            cooked = cooked[len(openssl.prefix):]
        elif cooked.startswith(openssl.legacy_prefix):
            cooked = cooked[len(openssl.legacy_prefix):]
        # openssl expects a newline at the end of the string.
        if cooked[-1] != '\n':
            cooked += '\n'
        return self.delegate('-d', cooked)


def get_enabled_backends(cp_hosts, backends, fz_confs,
                         fz_hosts, cinder_config):
    # Return a dictionary of lists, the keys in the dictionary are the
    # controller host names, and the values are lists of backends that
    # will be enabled for that host. The list can be empty.

    enabled_backends = {h: [] for h in cp_hosts}
    for be in backends:
        host = select_controller(enabled_backends, fz_confs, fz_hosts,
                                 be, cinder_config[be])
        enabled_backends[host].append(be)

    return enabled_backends


def select_controller(cp_hosts, fz_confs, fz_hosts, backend, config):
    # Select the controller node to manage the backend.
    candidate_fzs = None
    if 'failure-zone' in config:
        candidate_fzs = [fz for fz in fz_confs if backend in fz_confs[fz]]
    # If it's not in any failure-zone, then choose from all the controllers
    if candidate_fzs is None:
        selected_host = cp_hosts.keys()[0]
        for h in sorted(cp_hosts):
            if len(cp_hosts[h]) < len(cp_hosts[selected_host]):
                selected_host = h
        return selected_host

    # Now find the least used host in that list of AZs
    selected_host = fz_hosts[candidate_fzs[0]][0]
    for fz in sorted(candidate_fzs):
        for h in sorted(fz_hosts[fz]):
            if len(cp_hosts[h]) < len(cp_hosts[selected_host]):
                selected_host = h
    return selected_host


def get_failure_zone_lists(cinder_config, cp_hosts, groups):
    # Returns two dictionaries fc_confs and fc_hosts, the keys are the failure
    # zones that are referenced. The values in fz_confs are lists of the cinder
    # configs that reference that failure-zone. The values in fc_hosts are lists
    # of controller nodes that are in that failure-zone.
    fz_confs = {}
    for conf_name, conf in cinder_config.iteritems():
        if 'failure-zone' in conf:
            for fz in conf['failure-zone']:
                if fz in fz_confs:
                    fz_confs[fz].append(conf_name)
                else:
                    fz_confs[fz] = [conf_name]

    # TODO Get the list of failure-zones required for each resource group
    # referencing a cinder-config section. These will be added to the lists in
    # fc_confs.

    # Now get the list of nodes in each failure-zone
    fz_hosts = {}
    for fz in fz_confs:
        if fz in groups:
            fz_hosts[fz] = [h for h in cp_hosts if h in groups[fz]]
        else:
            fz_hosts[fz] = []
    return fz_confs, fz_hosts


def validate_user_assignment(user_assigned_host, backend, enabled_backends):
    # Returns True if the user assigned host and backend both exist in
    # enabled_backends

    if user_assigned_host in enabled_backends:
        for key in enabled_backends.keys():
            if backend in enabled_backends[key]:
                return True
    return False


def get_user_specified_assignment(enabled_backends, user_assignment):

    for backend, user_assigned_host in user_assignment.iteritems():
        if validate_user_assignment(user_assigned_host, backend, enabled_backends):
            for host in enabled_backends.keys():
                # If the user has associated a backend with a host then if needed
                # make the same association in enabled_backends
                if user_assigned_host == host:
                    if backend not in enabled_backends[host]:
                        enabled_backends[host].append(backend)
                # If the backend association differs with whats in enabled_backends
                # remove it from enabled_backends
                else:
                    if backend in enabled_backends[host]:
                        enabled_backends[host].remove(backend)
    return enabled_backends


def get_vsa_provided_data(section, service_data, provided_data, host_data):
    """Include VSA specific configuration logic

    The VSA configuration requires a URL that is configured from the vip,
    protocol and suffix provided by the service configuration.

    We also set a default value for the VSA management username and the
    VSA cluster name.
    """
    if not 'backend-config' in section:
        section['backend-config'] = {}
    backend_configuration = section['backend-config']
    backend_configuration['hpelefthand_api_url'] = (
        '%s://%s:%s%s' % (service_data['protocol'],
                          provided_data['service_vip']['vip'],
                          service_data['port'],
                          service_data['url_suffix']))
    backend_configuration['hpelefthand_clustername'] = (
        'cluster-%s' % provided_data['cluster'])
    backend_configuration['hpelefthand_username'] = (
        'mg-%s' % provided_data['cluster'])


def get_ceph_provided_data(section, service_data, provided_data, host_data):
    """At this point there is no ceph specific configuration logic"""
    pass


def get_cinder_config(section, service_data, provided_data):
    if not 'backend-config' in section:
        section['backend-config'] = {}
    backend_configuration = section['backend-config']
    for key in service_data['backend-config']:
        backend_configuration[key] = service_data['backend-config'][key]
    for key in provided_data:
        if key == 'volume-types':
            continue
        backend_configuration[key] = provided_data[key]


known_services = {
    'VSA-BLK': get_vsa_provided_data,
    'CEP-BLK': get_ceph_provided_data,
}


def decrypt_value(key, value, decryptor):
    """Decrypt configuration values

    Users can enter encrypted values for configuration variables like this:

        backend-config:
          unencrypted_variable: cleartext
          encrypted_variable:
              value: "ciphertext"
              encrypted: true

    If a variable has a dictionary as a value then this method will return the
    cleartext value.
    """
    if decryptor is None:
        raise Exception("The configuration variable %s may be encrypted, but "
                        "ARDANA_USER_PASSWORD_ENCRYPT_KEY has not been set." %
                        key)
    if not 'value' in value:
        raise Exception("The dictionary for the variable %s must have the key"
                        " 'value': %s" % (key, value))
    if not 'encrypted' in value:
        raise Exception("The dictionary for the variable %s must have the key"
                        " 'encrypted': %s" % (key, value))
    if value['encrypted'] is True:
        return decryptor.decrypt(value['value'])
    else:
        return value['value']


def get_provided_data(host_data, cinder_config, cinder_data, decrypt_key):
    """Link the provided_by reference in cinder_config.yml to service data

    The provided_by stanza for a backend in cinder_config.yml must provide a
    key/value pair that exists in the provided_by section of the provided_data
    section of the CND_VOL dictionary. This is generated from the service
    config input model, eg vsa/vsa_config.yml.

    This method takes the backend-config data from the service config model
    and generates data used to generate the backend configuration in
    cinder.conf.
    """
    provided_data = None
    if 'provided_data' in cinder_data:
        provided_data = cinder_data['provided_data']
    for section in cinder_config:
        if 'provided_by' in cinder_config[section]:
            provided_by = cinder_config[section]['provided_by']
            provided_key = provided_by.keys()[0]
            provided_value = provided_by[provided_key]
            p_data = None
            for pd in provided_data:
                if pd['provided_by'][provided_key] == provided_value:
                    p_data = pd['provided_by']
                    service_data = pd['data']
                    if p_data['name'] in known_services:
                        known_services[p_data['name']](cinder_config[section],
                                                       service_data,
                                                       p_data,
                                                       host_data)
                    backend_data = {}
                    if 'config_data' in p_data and ('backend-config' in
                                                    p_data['config_data']):
                        backend_data = p_data['config_data']['backend-config']
                    get_cinder_config(cinder_config[section],
                                      service_data,
                                      backend_data)

            if p_data is None:
                raise Exception("No config data for provided_by %s: %s" %
                                (provided_key, provided_value))

        # Check for encrypted config variables in this section.
        decryptor = None
        if decrypt_key and decrypt_key != "":
            decryptor = openssl(decrypt_key)
        cnf = cinder_config[section]['backend-config']
        for v in cnf:
            if isinstance(cnf[v], dict):
                cnf[v] = decrypt_value(v, cnf[v], decryptor)


def main():
    """Generates cinder.conf from input model data

    The parameters required are:
        host_data: The data for the host being configured.
        cinder_config_data: The input model data from cinder_config.yml
        groups: The groups variable from the input model
        vol_group_name: The string to use to find the group of cinder-volume
                        hosts in groups.
        cinder_data: The data from the provided_by section of cinder
        user_assignment_data: The list of backends that have been assigned to
                              a specific cinder-volume host.
    """
    module = AnsibleModule(
        argument_spec=dict(
            host_data=dict(type='dict'),
            cinder_config_data=dict(type='dict'),
            groups=dict(type='dict'),
            vol_group_name=dict(type='str'),
            cinder_data=dict(type='dict'),
            decryption_key=dict(type='str'),
            user_assignment_data=dict(type='dict')
        )
    )
    host_data = module.params['host_data']
    cinder_config = module.params['cinder_config_data']
    groups = module.params['groups']
    cp_hosts = module.params['groups'][module.params['vol_group_name']]
    cinder_data = module.params['cinder_data']
    decrypt_key = module.params['decryption_key']
    user_assignment = module.params['user_assignment_data']

    if not cinder_config:
        module.fail_json(rc=256, msg="No cinder config info specified")

    get_provided_data(host_data['my_dimensions'],
                      cinder_config, cinder_data, decrypt_key)

    # If we can assume that the lists presented to this method on every
    # controller host will be in the same order, then the next two operations
    # are not required
    sorted_hosts = sorted(cp_hosts)
    sorted_backends = sorted(cinder_config.keys())

    fz_confs, fz_hosts = get_failure_zone_lists(cinder_config,
                                                cp_hosts, groups)

    enabled_backends = get_enabled_backends(sorted_hosts,
                                            sorted_backends,
                                            fz_confs,
                                            fz_hosts,
                                            cinder_config)

    if user_assignment:
        enabled_backends = get_user_specified_assignment(
            enabled_backends, user_assignment)

    backend_configs = []
    for be in cinder_config:
        section = {'name': be}
        section['config'] = cinder_config[be]['backend-config']
        backend_configs.append(section)

    module.exit_json(
        control_plane_hosts=cp_hosts,
        cinder_enabled_backends=enabled_backends,
        cinder_backend_configs=backend_configs,
        stderr='',
        rc=0,
        changed=True
    )


main()
070701000000B5000041ED0000000000000000000000025F23024000000000000000000000000000000000000000000000003D00000000ardana-cinder-8.0+git.1596129856.263f430/roles/_CND-CMN/meta070701000000B6000081A40000000000000000000000015F23024000000263000000000000000000000000000000000000004600000000ardana-cinder-8.0+git.1596129856.263f430/roles/_CND-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
070701000000B7000041ED0000000000000000000000025F23024000000000000000000000000000000000000000000000003E00000000ardana-cinder-8.0+git.1596129856.263f430/roles/_CND-CMN/tasks070701000000B8000081A40000000000000000000000015F230240000003A2000000000000000000000000000000000000004C00000000ardana-cinder-8.0+git.1596129856.263f430/roles/_CND-CMN/tasks/_activate.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.
#
---
# Activate Cinder Common Install
- name: _CND-CMN | _activate | Activate the latest install
  install_package:
    name: cinder
    service: cinder-common
    activate: act_on
    version: "{{ cinder_common_install_result.version }}"
  when: cinder_common_install_result is defined
070701000000B9000081A40000000000000000000000015F2302400000052C000000000000000000000000000000000000005900000000ardana-cinder-8.0+git.1596129856.263f430/roles/_CND-CMN/tasks/_clear_cached_variable.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.
#
---

# Mark the ardana_notify_cinder_restart_required variable for clearing from the
# persistent fact cache. This variable is needed in each of the individual
# services start tasks so we hold off on marking it for clearing until after
# these start tasks have run. The "is defined" check will mark the variable
# for clearing at the end of the play or else at the beginning of the next
# play.

- name: _CND-CMN | _clear_cached_variable | Mark ardana_notify_cinder_restart_required to be cleared from fact cache
  debug:
    msg: >-
      Marking ardana_notify_cinder_restart_required to be cleared
      from the fact cache
  when: ardana_notify_cinder_restart_required is defined

070701000000BA000081A40000000000000000000000015F23024000000523000000000000000000000000000000000000005900000000ardana-cinder-8.0+git.1596129856.263f430/roles/_CND-CMN/tasks/_determine_volume_host.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.
#
---

# Read the cinder volume and backup service run location from the
# control plane fact file on localhost
- include: ./_read_volume_run_location.yml

- name: _CND-CMN | _determine_volume_host | Set _cinder_volume_running_here fact to True
  set_fact:
    _cinder_volume_running_here: True
  when: ((config_data is not defined and
          {{ cinder_volume_host_index }} == groups[verb_hosts.CND_VOL].index(inventory_hostname)) or
         ((config_data is defined and config_data.CND is not defined) and
          {{ cinder_volume_host_index }} == groups[verb_hosts.CND_VOL].index(inventory_hostname)) or
         (config_data is defined and config_data.CND is defined))
070701000000BB000081A40000000000000000000000015F2302400000066D000000000000000000000000000000000000005B00000000ardana-cinder-8.0+git.1596129856.263f430/roles/_CND-CMN/tasks/_read_backend_assignment.yml#
# (c) Copyright 2016-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.
#
# If the storage input model is being used specify the assignment of backends
# to hosts in the /etc/ansible/facts.d/cinder_backend_assignment.fact file.
# The assignment should be specified in json format as follows:
#{
#  "<BACKEND_NAME>": "<HOSTNAME>",
#  "<BACKEND_NAME>": "<HOSTNAME>",
#  "<BACKEND_NAME>": "<HOSTNAME>",
#  "<BACKEND_NAME>": "<HOSTNAME>"
#}
#
---
# Read the user defined assignment of backends to hosts from the
# fact file on localhost if the file exists

- name: _CND-CMN | _read_backend_assignment | Check backend assignment fact file exists
  become: yes
  delegate_to: localhost
  stat:
    path: "{{ cinder_backend_assignment_file }}"
  register: cinder_backend_assignment_file_result

- name: _CND-CMN | _read_backend_assignment | Read backend assignment fact file
  become: yes
  delegate_to: localhost
  set_fact:
    cinder_backend_assignment: "{{ lookup('file', cinder_backend_assignment_file) | from_json }}"
  when: cinder_backend_assignment_file_result.stat.exists
070701000000BC000081A40000000000000000000000015F230240000004F9000000000000000000000000000000000000005C00000000ardana-cinder-8.0+git.1596129856.263f430/roles/_CND-CMN/tasks/_read_volume_run_location.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.
#
---
# Read the cinder volume and backup services run location from the
# control plane fact file on localhost if the file exists.

- name: _CND-CMN | _read_volume_run_location | Check run location fact file exists
  become: yes
  delegate_to: localhost
  stat:
    path: "{{ cinder_volume_run_loc_file }}"
  register: cinder_volume_run_loc_file_result

- name: _CND-CMN | _read_volume_run_location | Read fact file and set cinder_volume_host_index
  become: yes
  delegate_to: localhost
  set_fact:
    cinder_volume_host_index: "{{ lookup('file', cinder_volume_run_loc_file) }}"
  when: cinder_volume_run_loc_file_result.stat.exists
070701000000BD000081A40000000000000000000000015F2302400000030C000000000000000000000000000000000000005400000000ardana-cinder-8.0+git.1596129856.263f430/roles/_CND-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: _CND-CMN | _schedule_restart | Schedule a restart for cinder
  debug:
    msg: "Trigger a change notification in cinder"
  changed_when: true
  register: ardana_notify_cinder_restart_required
070701000000BE000081A40000000000000000000000015F23024000001121000000000000000000000000000000000000005200000000ardana-cinder-8.0+git.1596129856.263f430/roles/_CND-CMN/tasks/_service_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.
#
---
- include: ./_determine_volume_host.yml

- name: _CND-CMN | _service_status | Print service being checked
  debug:
    msg: "Running service check for {{ cinder_component }}"
  run_once: True

# no_log set to True to suppress redundant output from systemctl
# changed_when set to False so that ansible output reports a status
# of ok instead of changed when the service is running
- name: _CND-CMN | _service_status | Check system service running
  command: systemctl status "{{ cinder_component }}"
  ignore_errors: yes
  no_log: True
  changed_when: False
  register: cinder_systemctl_status_result

# This task is only required to support the upgrade between previous versions
# It can be removed when upgrade between previous versions is no longer supported
- name: _CND-CMN | _service_status | Check if the cindervolume.fact file is present
  stat: path=/etc/ansible/facts.d/cindervolume.fact
  register: cinder_fact_result

# This task is only required to support the upgrade between previous versions
# It can be removed when upgrade between previous versions is no longer supported.
- name: _CND-CMN | _service_status | Re-read the local facts if the cindervolume.fact file exists
  setup: filter=ansible_local
  when: cinder_fact_result.stat.exists == True

- name: _CND-CMN | _service_status | Set status facts based on local facts in cindervolume.fact
  set_fact:
    cinder_api_sch_not_running_error: >-
      {{ cinder_systemctl_status_result | failed and
          cinder_component != "cinder-volume" and
          cinder_component != "cinder-backup" }}
    cinder_vol_bck_not_running_error: >-
      {{ cinder_systemctl_status_result | failed and
          (cinder_component == "cinder-volume" or
            cinder_component == "cinder-backup") and
          ansible_local.cindervolume.status.running == "True" }}
    cinder_vol_bck_running_error: >-
      {{ cinder_systemctl_status_result | success and
          (cinder_component == "cinder-volume" or
            cinder_component == "cinder-backup") and
          ansible_local.cindervolume.status.running == "False" }}
  when: cinder_fact_result.stat.exists == True

- name: _CND-CMN | _service_status | Set status facts
  set_fact:
    cinder_api_sch_not_running_error: >-
      {{ cinder_systemctl_status_result | failed and
          cinder_component != "cinder-volume" and
          cinder_component != "cinder-backup" }}
    cinder_vol_bck_not_running_error: >-
      {{ cinder_systemctl_status_result | failed and
          (cinder_component == "cinder-volume" or
            cinder_component == "cinder-backup") and
          (_cinder_volume_running_here | bool) }}
    cinder_vol_bck_running_error: >-
      {{ cinder_systemctl_status_result | success and
          (cinder_component == "cinder-volume" or
            cinder_component == "cinder-backup") and
          (not _cinder_volume_running_here | bool) }}
  when: cinder_fact_result.stat.exists == False

- name: _CND-CMN | _service_status | Report status of "{{ cinder_component }} unexpectedly not running"
  fail:
    msg: |
      {{ cinder_component }} is not running.
      systemctl status {{ cinder_component }} output:
      {{ cinder_systemctl_status_result.stdout }}
      {{ cinder_systemctl_status_result.stderr }}
  when: >
    (cinder_api_sch_not_running_error == "True") or
    (cinder_vol_bck_not_running_error == "True")

- name: _CND-CMN | _service_status | Report status of "{{ cinder_component }} unexpectedly running"
  fail:
    msg: |
      {{ cinder_component }} is running.
      systemctl status {{ cinder_component }} output:
      {{ cinder_systemctl_status_result.stdout }}
      {{ cinder_systemctl_status_result.stderr }}
  when: cinder_vol_bck_running_error == "True"

070701000000BF000081A40000000000000000000000015F2302400000053C000000000000000000000000000000000000004D00000000ardana-cinder-8.0+git.1596129856.263f430/roles/_CND-CMN/tasks/api_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.
#
---

- name: _CND-CMN | api_status | Run verify V1
  command: >
    /usr/local/bin/cinder_check -a -v --api-version '1'
    --auth_url "{{ cinder_keystone.identity_v2_admin_url }}"
    --interface internalURL -p "{{ cinder_keystone.admin_password }}"
  when: >
    cinder_disable_v1_check is not defined or
    cinder_disable_v1_check | bool != True

- name: _CND-CMN | api_status | Run verify V2
  command: >
    /usr/local/bin/cinder_check -a -v --api-version '2'
    --auth_url "{{ cinder_keystone.identity_v2_admin_url }}"
    --interface internalURL -p "{{ cinder_keystone.admin_password }}"
  when: >
    cinder_disable_v2_check is not defined or
    cinder_disable_v2_check | bool != True
070701000000C0000081A40000000000000000000000015F2302400000045E000000000000000000000000000000000000005A00000000ardana-cinder-8.0+git.1596129856.263f430/roles/_CND-CMN/tasks/check_migrate_hostindex.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.
#
---
- include: ./_read_volume_run_location.yml

- name: _CND-CMN | check_migrate_hostindex | Check Host index
  fail: msg="Specified host index value {{ cinder_volume_host_index }} is invalid"
  when: ((config_data is not defined) or
         (config_data is defined and config_data.CND is not defined)) and
         (({{ cinder_volume_host_index }} < 0) or
          ({{ cinder_volume_host_index }} >= groups[verb_hosts.CND_VOL]|length))
  run_once_per: verb_hosts.CND_VOL
070701000000C1000081A40000000000000000000000015F23024000000339000000000000000000000000000000000000005900000000ardana-cinder-8.0+git.1596129856.263f430/roles/_CND-CMN/tasks/check_migrate_hostname.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: _CND-CMN | check_migrate_hostname | Check Hostname
  fail: msg="Invalid hostname specified"
  when: destination_host not in groups[verb_hosts.CND_VOL]
  run_once: true
070701000000C2000081A40000000000000000000000015F23024000001589000000000000000000000000000000000000004C00000000ardana-cinder-8.0+git.1596129856.263f430/roles/_CND-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.
#
---
- include: ./_read_backend_assignment.yml
- name: _CND-CMN | configure | Set max worker count to 8 if dynamic
    CPU based count is greater than {{ osapi_volume_max_workers }}
  set_fact:
    osapi_volume_worker_count: "{{ osapi_volume_max_workers }}"
  when: osapi_volume_worker_count > osapi_volume_max_workers

# Remove any vestiges of a potential package deploy

- name: _CND-CMN | configure | ensure Cinder sqlite (from package install) is deleted
  become: yes
  file:
    path: /var/lib/cinder/cinder.sqlite
    state: absent

- name: _CND-CMN | configure | ensure logging.conf (from package install) is deleted
  become: yes
  file:
    path: "{{ cinder_dir }}/logging.conf"
    state: absent

- name: _CND-CMN | configure | ensure logrotate.d/cinder-common (from package install) is deleted
  become: yes
  file:
    path: /etc/logrotate.d/cinder-common
    state: absent

# TODO: remove after 4.0
- name: _CND-CMN | configure | delete unused {{ installation_directory }}/cinder
  become: yes
  file:
    path: "{{ installation_directory }}/cinder"
    state: absent

- name: _CND-CMN | configure | Create '{{ cinder_conf_dir }}' directory
  become: yes
  file:
    path: "{{ cinder_conf_dir }}"
    owner: "{{ cinder_user }}"
    group: "{{ cinder_group }}"
    mode: 0700
    state: directory

- name: _CND-CMN | configure | Create logging directory
  become: yes
  file:
    path: "{{ cinder_logs_dir }}"
    owner: "{{ cinder_user }}"
    group: "{{ cinder_group }}"
    mode: 0775
    state: directory

- name: _CND-CMN | configure | Create rootwrap.d directory
  become: yes
  file:
    path: "{{ cinder_rootwrap_dir }}"
    owner: "root"
    group: "root"
    mode: 0755
    state: directory

- name: _CND-CMN | configure | Set ownership of /var/lib/cinder
  become: yes
  file:
    path: "{{ cinder_state_path }}"
    owner: "{{ cinder_user }}"
    group: "{{ cinder_group }}"
    mode: 0750
    state: directory

- name: _CND-CMN | configure | Create /etc/ansible/facts.d/ on localhost
  become: yes
  delegate_to: localhost
  run_once: true
  file:
    path: "{{ cinder_facts_dir }}"
    state: directory
    mode: 0755

- name: _CND-CMN | configure | Check for presence of group '{{ mon_agent_group }}'
  command: "grep -q {{ mon_agent_group }} /etc/group"
  ignore_errors: True
  register: cinder_mon_group_chk_result

- name: _CND-CMN | configure | Define '{{ mon_agent_group }}' as {{ cinder_group }}
  set_fact:
    mon_agent_group={{ cinder_group }}
  when: cinder_mon_group_chk_result|failed

- name: _CND-CMN | configure | Create cinderlm config directory
  become: yes
  file:
    path: "{{ cinderlm_conf_dir }}"
    owner: "{{ cinder_user }}"
    group: "{{ mon_agent_group }}"
    mode: 0750
    state: directory

- name: _CND-CMN | configure | Set cinder_user_backend_assignment
  set_fact:
    cinder_user_backend_assignment: >-
      {{ cinder_backend_assignment|default('{}') }}

- name: _CND_CMN | configure | Generate the list of enabled backends.
  get_enabled_backends:
    host_data: "{{ host }}"
    cinder_config_data: "{{ config_data.CND }}"
    groups: "{{ groups }}"
    vol_group_name: "{{ cinder_service_group_name }}"
    cinder_data: "{{ cinder_service_data }}"
    decryption_key: "{{ lookup('env','ARDANA_USER_PASSWORD_ENCRYPT_KEY') }}"
    user_assignment_data: "{{ cinder_user_backend_assignment }}"
  when: (config_data is defined and config_data.CND is defined)
  register: my_enabled_backends

- name: _CND-CMN | configure | Generate '{{ cinder_conf_dir }}'/cinder.conf
  become: yes
  template:
    src: "{{ cinder_conf_template | default('cinder.conf.j2') }}"
    dest: "{{ cinder_conf_dir }}/cinder.conf"
    owner: "{{ cinder_user }}"
    group: "{{ cinder_group }}"
    mode: 0400
  register: ardana_notify_cinder_restart_required

- name: _CND-CMN | configure | Generate Cinder rootwrap config file
  become: yes
  template:
    src: "rootwrap.conf.j2"
    dest: "{{ cinder_dir }}/rootwrap.conf"
    owner: root
    group: root
    mode: 0440
  register: ardana_notify_cinder_restart_required

- name: _CND-CMN | configure | Copy /etc/cinder/cinderlm.conf
  become: yes
  template:
    src: cinderlm.conf.j2
    dest: "{{ cinderlm_conf_dir }}/cinderlm.conf"
    owner: "{{ cinder_user }}"
    group: "{{ mon_agent_group }}"
    mode: 0440

- name: _CND-CMN | configure | Create symlinks to Cinder binaries
  become: yes
  file:
    src: "{{ cinder_common_bin_dir }}/{{ item }}"
    dest: "/usr/local/bin/{{ item }}"
    owner: root
    group: root
    state: link
  with_items:
    - cinder-rootwrap
    - cinder-manage

- name: _CND-CMN | configure | Setup cinder user to allow sudo to run cinder-rootwrap without password
  become: yes
  copy:
    src: etc/sudoers.d/cinder-rootwrap
    dest: /etc/sudoers.d/cinder-rootwrap
    owner: root
    group: root
    mode: 0440
    validate: 'visudo -cf %s'
070701000000C3000081A40000000000000000000000015F230240000008D4000000000000000000000000000000000000004A00000000ardana-cinder-8.0+git.1596129856.263f430/roles/_CND-CMN/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: _CND-CMN | install | Check for presence of group '{{ cinder_group }}'
  command: "grep -q {{ cinder_group }} /etc/group"
  ignore_errors: True
  register: cinder_group_chk_result

- name: _CND-CMN | install | Add group '{{ cinder_group }}'
  group: name={{ cinder_group }}
  when: cinder_group_chk_result|failed

- name: _CND-CMN | install | Check for presence of user '{{ cinder_user }}'
  command: "id {{ cinder_user }}"
  ignore_errors: True
  register: cinder_user_chk_result

- name: _CND-CMN | install | Add user '{{ cinder_user }}'
  user:
    name: "{{ cinder_user }}"
    group: "{{ cinder_group }}"
    createhome: no
    home: "{{ cinder_home_dir }}"
    shell: /bin/true
  when: cinder_user_chk_result|failed

- name: _CND-CMN | install | Add user home
  become: yes
  file:
    path: "{{ cinder_home_dir }}"
    state: directory
    owner: "{{ cinder_user }}"
    group: "{{ cinder_group }}"
    mode: 0750
  when: cinder_user_chk_result|failed

- name: _CND-CMN | install | Update venv cache
  install_package:
    cache: update

# no real service here, just apply the venv
- name: _CND-CMN | install | Install Cinder Common
  install_package:
    name: cinder
    service: cinder-common
    state: present
    activate: act_off
  register: cinder_common_install_result

- name: _CND-CMN | install | Set service directories
  set_fact:
    cinder_common_bin_dir: >-
      {{ 'cinder-common' |
          bin_dir(cinder_common_install_result.version) }}
    cinder_common_venv_share_dir: >-
      {{ 'cinder-common' |
          share_dir(cinder_common_install_result.version) }}/cinder
070701000000C4000081A40000000000000000000000015F23024000000382000000000000000000000000000000000000005600000000ardana-cinder-8.0+git.1596129856.263f430/roles/_CND-CMN/tasks/logrotate-configure.yml#
# (c) Copyright 2016-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: _CND-CMN | logrotate-configure | Create logrotate.d/cinder when logging roles are not applied to nodes
  become: yes
  template:
    src: cinder-logrotate.conf
    dest: /etc/logrotate.d/cinder
    owner: root
    group: root
    mode: 0644
070701000000C5000081A40000000000000000000000015F23024000000989000000000000000000000000000000000000005700000000ardana-cinder-8.0+git.1596129856.263f430/roles/_CND-CMN/tasks/migrate_confirmation.yml#
# (c) Copyright 2016-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: ./_read_volume_run_location.yml
- include: ./_read_backend_assignment.yml

- name: _CND-CMN | migrate_confirmation | Build user backend assignment text
  set_fact: formatted_output="{{ cinder_backend_assignment | to_nice_json }}"
  when: >
      (config_data is defined and
       config_data.CND is defined and
       cinder_backend_assignment is defined)

- name: _CND-CMN | migrate_confirmation | Confirm hostname for migrate
  pause:
    prompt: >-
      Cinder volume and backup services will be migrated to the
      {{ groups[verb_hosts.CND_VOL][cinder_volume_host_index|int] }} host.
      Press enter to continue or control+c then a to abort
  when: >
      (config_data is not defined) or
      (config_data is defined and config_data.CND is not defined)
  delegate_to: localhost

- name: _CND-CMN | migrate_confirmation | Confirm user defined input model migration selection
  pause:
    prompt: >-
      Cinder volume and backup services running on hosts matching the supplied
      limit pattern will be migrated as follows
      {{ formatted_output }}
      Press enter to continue or control+c then a to abort
  when: >
      (config_data is defined and
       config_data.CND is defined and
       cinder_backend_assignment is defined)
  delegate_to: localhost

- name: _CND-CMN | migrate_confirmation | Confirm default input model migration selection
  pause:
    prompt: >-
      Cinder volume and backup services running on hosts matching the supplied
      limit pattern will be migrated based on the configuration specified in cinder_config.yml.
      Press enter to continue or control+c then a to abort
  when: >
      (config_data is defined and
       config_data.CND is defined and
       cinder_backend_assignment is not defined)
  delegate_to: localhost
070701000000C6000081A40000000000000000000000015F2302400000036A000000000000000000000000000000000000005400000000ardana-cinder-8.0+git.1596129856.263f430/roles/_CND-CMN/tasks/show_volume_hosts.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: _CND-CMN | show_volume_hosts | Show Cinder Volume hosts index and hostname
  debug: msg="Index {{ item.0 }} Hostname {{ item.1 }}"
  with_indexed_items: "{{ groups[verb_hosts.CND_VOL] }}"
  run_once_per: verb_hosts.CND_VOL
070701000000C7000041ED0000000000000000000000025F23024000000000000000000000000000000000000000000000004200000000ardana-cinder-8.0+git.1596129856.263f430/roles/_CND-CMN/templates070701000000C8000081A40000000000000000000000015F230240000008E3000000000000000000000000000000000000005900000000ardana-cinder-8.0+git.1596129856.263f430/roles/_CND-CMN/templates/cinder-logging.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.
#
#}
[loggers]
keys: root, iso8601, suds{% block extend_loggers %}{% endblock extend_loggers %}

[handlers]
keys: watchedfile, logstash{% block extend_handlers %}{% endblock extend_handlers %}

[formatters]
keys: context, logstash{% block extend_formatters %}{% endblock extend_formatters %}

[logger_root]
qualname: root
handlers: watchedfile, logstash
level: NOTSET

[logger_iso8601]
qualname: iso8601
handlers: watchedfile, logstash
level: WARNING

[logger_suds]
qualname: suds
handlers: watchedfile, logstash
level: WARNING
{% block audit_logger %}
{% endblock audit_logger %}

# Writes to disk
[handler_watchedfile]
class: handlers.WatchedFileHandler
args: ('/var/log/cinder/{% block logfilename %}CHANGEME{% endblock logfilename %}.log',)
formatter: context
level: {{ cinder_loglevel }}

# Writes JSON to disk, beaver will ship to logstash
[handler_logstash]
class: handlers.WatchedFileHandler
args: ('/var/log/cinder/{% block jsonlogfilename %}CHANGEME{% endblock jsonlogfilename %}.log',)
formatter: logstash
level: {{ cinder_logstash_loglevel }}
{% block audit_handler %}
{% endblock audit_handler %}

# datefmt must be set otherwise you end up with too many (msecs) fields
[formatter_context]
class: {{ cinder_logging_context_formatter }}
args: (datefmt=datefmt)
format: %(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [%(request_id)s %(user)s %(tenant)s] %(instance)s%(message)s
datefmt: %Y-%m-%d %H:%M:%S

# the "format" and "datefmt" actually set the "type" and "tags"
[formatter_logstash]
class: logstash.LogstashFormatterVersion1
format: cinder
{% block audit_formatter %}
{% endblock audit_formatter %}
070701000000C9000081A40000000000000000000000015F230240000005B2000000000000000000000000000000000000005800000000ardana-cinder-8.0+git.1596129856.263f430/roles/_CND-CMN/templates/cinder-logrotate.conf#
# (c) Copyright 2016-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.
#
#

/var/log/cinder/cinder-api.log
{
  daily
  compress
  missingok
  notifempty
  copytruncate
  maxsize 256M
  rotate 14
  create 640 cinder adm
  su cinder adm
}

/var/log/cinder/cinder-api-json.log
{
  daily
  compress
  missingok
  notifempty
  copytruncate
  maxsize 256M
  rotate 1
  create 640 cinder adm
  su cinder adm
}

/var/log/cinder/cinder-backup.log
/var/log/cinder/cinder-volume.log
/var/log/cinder/cinder-scheduler.log
{
  daily
  compress
  missingok
  notifempty
  copytruncate
  maxsize 80M
  rotate 14
  create 640 cinder adm
  su cinder adm
}

/var/log/cinder/cinder-backup-json.log
/var/log/cinder/cinder-volume-json.log
/var/log/cinder/cinder-scheduler-json.log
{
  daily
  compress
  missingok
  notifempty
  copytruncate
  maxsize 80M
  rotate 1
  create 640 cinder adm
  su cinder adm
}
070701000000CA000081A40000000000000000000000015F230240000037DA000000000000000000000000000000000000005100000000ardana-cinder-8.0+git.1596129856.263f430/roles/_CND-CMN/templates/cinder.conf.j2{#
#
# (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.
#
#}

[DEFAULT]

# Print debugging output (set logging level to DEBUG instead
# of default WARNING level). (boolean value)
debug={{ cinder_debug }}

enable_v3_api=True

osapi_volume_workers = "{{ osapi_volume_worker_count }}"
osapi_volume_listen = {{ cinder_osapi_volume_listen }}
osapi_volume_listen_port = {{ cinder_osapi_volume_listen_port }}
transport_url = rabbit://{{ cinder_rabbit_hosts_transport_url }}/
{% if cinder_glance_url is defined %}
glance_api_servers = {{ cinder_glance_url }}
{% endif %}
{% if cinder_backup_swift_url is defined and cinder_backup_swift_url %}
backup_swift_url = {{ cinder_backup_swift_url }}
swift_catalog_info = object-store:swift:internalURL
{% endif %}
{% if cinder_volume_nova_url is defined %}
nova_endpoint_template = {{ cinder_volume_nova_url }}/%(project_id)s
nova_endpoint_admin_template = {{ cinder_volume_nova_url }}/%(project_id)s
os_region_name = {{ cinder_keystone.region_name }}
nova_catalog_info = compute:nova:internalURL
nova_catalog_admin_info = compute:nova:adminURL
{% endif %}

{% block api_paste_config %}
# Versioned api-paste.ini specified where appropriate.
#api_paste_config = /etc/cinder/api-paste.ini
{% endblock api_paste_config %}

auth_strategy = keystone

state_path = {{ cinder_state_path }}
{% if cinder_image_conversion_dir is defined %}
image_conversion_dir={{ cinder_image_conversion_dir }}
{% endif %}

iscsi_helper={{ cinder_iscsi_helper }}

{% if cinder_public_endpoint is defined %}
# Uncomment to set the public API in the links responses
#public_endpoint = {{ cinder_public_endpoint }}
#osapi_volume_base_URL = {{ cinder_public_endpoint }}
{% endif %}
# behind haproxy record the X-Forward-For source in the logfile
use_forwarded_for = True


control_exchange = {{ cinder_control_exchange }}
rpc_response_timeout = 120

# Common hostname to avoid singleton limitation of Cinder volume manager
host = ha-volume-manager

{% if ((cinderinternal_project_id is defined) and (cinderinternal_user_id is defined)) %}
# Cinder internal project id and user id for volume image cache
cinder_internal_tenant_project_id = {{ cinderinternal_project_id }}
cinder_internal_tenant_user_id = {{ cinderinternal_user_id }}
# To enable volume image caching the image_volume_cache_enabled flag needs to
# be set to True in the relevant backend section in cinder.conf
{% endif %}

{% if my_enabled_backends.cinder_enabled_backends is not defined %}

# Configure the enabled backends
enabled_backends=
{%- if cinder_lvm_device_group %},lvm-1{% endif %}
{%- if cinder_ses_enabled|bool %},ses_ceph{% endif %}

{% endif %}

# Configure the enabled backends, above left for convenience, until upgrade
# process is finalised.
{% if my_enabled_backends.cinder_enabled_backends is defined %}
enabled_backends={{ my_enabled_backends.cinder_enabled_backends[inventory_hostname]|join(", ") }}

{% for be in my_enabled_backends.cinder_backend_configs %}
[{{ be['name'] }}]
{% for conf in be['config'] %}
{{ conf }}={{ be['config'][conf] }}
{% endfor %}

{% endfor %}
{% endif %}

# Configure Cinder backup with SES
{% if cinder_backup_ses_enabled|bool %}
backup_driver = cinder.backup.drivers.ceph
backup_ceph_conf = {{ cinder_backup_ses_ceph_conf_file_path }}
backup_ceph_user = {{ cinder_backup_ses_user_name }}
backup_ceph_pool = {{ cinder_backup_ses_pool_name }}
{% endif %}

{% if cinder_keymgr_fixed_key is defined %}
[keymgr]
fixed_key = {{ cinder_keymgr_fixed_key }}
{% elif cinder_keymgr_url is defined and cinder_keymgr_url != "" %}
[key_manager]
api_class = castellan.key_manager.barbican_key_manager.BarbicanKeyManager

[barbican]
auth_endpoint = {{ cinder_keystone.internal_url }}/v3
barbican_endpoint = {{ cinder_keymgr_url }}
barbican_api_version = v1
{% endif %}

[keystone_authtoken]
auth_uri = {{ cinder_keystone.identity_admin_url }}
auth_url = {{ cinder_keystone.internal_url }}
auth_type = password
project_domain_name = {{ cinder_keystone.default_domain_name }}
user_domain_name =  {{ cinder_keystone.default_domain_name }}
project_name = {{ cinder_keystone.admin_tenant_name }}
username = {{ cinder_identity_admin_user }}
password = {{ cinder_identity_admin_password }}
cafile = {{ cinder_keystone.cacert_file }}
service_token_roles_required = true
service_token_roles = admin
memcached_servers = {{ cinder_keystone.memcached_servers }}
memcache_security_strategy = ENCRYPT
memcache_secret_key = {{ cinder_keystone.memcache_secret_key }}
memcache_pool_socket_timeout = 1

[database]
connection={{ cinder_db }}
max_overflow={{ cinder_max_overflow }}
max_pool_size={{ cinder_max_pool_size }}
min_pool_size={{ cinder_min_pool_size }}

[oslo_messaging_notifications]
driver = {{ cinder_notification_driver }}

[oslo_messaging_rabbit]
rabbit_ha_queues=False
ssl = {{ cinder_rabbit_use_ssl }}

[oslo_middleware]
enable_proxy_headers_parsing = true

[oslo_concurrency]
lock_path = /var/lib/cinder

{% block audit_middleware %}{% endblock audit_middleware %}
{% if cinder_lvm_device_group %}
# LVM thin provision. This way we don't dd the disk
[lvm-1]
volume-group = cinder-volumes
lvm_type = thin
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volume_backend_name = LVM_iSCSI
iscsi_ip_address = {{ cinder_osapi_volume_listen }}
{% endif %}

# Cinder SES integration
# FIXME(gyee): according to documentation, cinder can support multiple Ceph
# storeage pools. We may need to take that into design consideration.
# For now, let's just assume we have one.
{% if cinder_ses_enabled|bool %}
[ses_ceph]
volume_driver = cinder.volume.drivers.rbd.RBDDriver
rbd_secret_uuid = {{ cinder_ses_secret_uuid }}
rbd_user = {{ cinder_ses_user_name }}
rbd_pool = {{ cinder_ses_pool_name }}
rbd_ceph_conf = {{ cinder_ses_ceph_conf_file_path }}
rbd_flatten_volume_from_snapshot = {{ cinder_ses_flatten_volume_from_snapshot }}
volume_backend_name = ses_ceph
{% endif %}

# Start of section for StoreServ (3par) iscsi cluster
#
# If you have configured StoreServ backend storage for cinder you must
# uncomment this section, and replace all strings in angle brackets
# with the correct values for the HP 3PAR you have configured.  You
# must also add the section name to the list of values in the
# 'enabled_backends' variable above. You must provide unique section
# each time you configure a new backend for HP 3PAR.
#
# If you want to configure more than one CPG then you can do one of the
# following:
#   1) Create an unique section for each backend, or
#   2) Provide a comma separated list of CPGs for hpe3par_cpg
#
# In the second case, this set of CPGs will form a pool but will be seen as a
# single device by Cinder.
#
#[<unique-section-name>]
#hpe3par_iscsi_chap_enabled = true
#san_ip = <3par-san-ipaddr>
#san_login = <3par-san-username>
# If adding a password here, then the password can be encrypted using the
# mechanism specified in the documentation.  If the password has been encrypted
# add the value and the openstack_user_password_decrypt filter like so:
# san_password = {{ '<encrypted 3par-san-password>' | openstack_user_password_decrypt }}
# Note that the encrypted value has to be enclosed in quotes
# If you choose not to encrypt the password then the unencrypted password
# must be set as follows:
# san_password = <3par-san-password>
#hpe3par_iscsi_ips = <3par-ip-address-1>[,<3par-ip-address-2>,<3par-ip-address-3>, ...]
#hpe3par_username = <3par-username>
# If adding a password here, then the password can be encrypted using the
# mechanism specified in the documentation.  If the password has been encrypted
# add the value and the openstack_user_password_decrypt filter like so:
#hpe3par_password = {{ '<encrypted hpe3par_password>' | openstack_user_password_decrypt }}
# Note that the encrypted value has to be enclosed in quotes
# If you choose not to encrypt the password then the unencrypted password
# must be set as follows:
#hpe3par_password = <hep3par_password>
#hpe3par_api_url = https://<3par-san-ipaddr>:8080/api/v1
#hpe3par_cpg = <3par-cpg-name-1>[,<3par-cpg-name-2>, ...]
#volume_backend_name = <3par-backend-name>
#volume_driver = cinder.volume.drivers.hpe.hpe_3par_iscsi.HPE3PARISCSIDriver
#
# End of section for StoreServ (3par) iscsi cluster


# Start of section to enable a CPG  as a backend for StoreServ (3par)
# using a fibre channel device
#
# If you have configured StoreServ backend storage for cinder you must
# uncomment this section, and replace all strings in angle brackets
# with the correct values for the cluster you have configured.  You
# must also add the section name to the list of values in the
# 'enabled_backends' variable above.
#
# If you want to configure more than one CPG then you can do one of the
# following:
#   1) Create an unique section for each backend, or
#   2) Provide a comma separated list of CPGs for hpe3par_cpg
#
# In second case, these sets of CPGs will form a pool but will seen as a
# single device by Cinder.
#
#
#[<unique-section-name>]
#san_ip = <3par-san-ipaddr>
#san_login = <3par-san-username>
# If adding a password here, then the password can be encrypted using the
# mechanism specified in the documentation.  If the password has been encrypted
# add the value and the openstack_user_password_decrypt filter like so:
#san_password = {{ '<encrypted 3par-san-password>' | openstack_user_password_decrypt }}
# Note that the encrypted value has to be enclosed in quotes
# If you choose not to encrypt the password then the unencrypted password
# must be set as follows:
#san_password = <3par-san-password>
#hpe3par_username = <3par-username>
# If adding a password here, then the password can be encrypted using the
# mechanism specified in the documentation.  If the password has been encrypted
# add the value and the openstack_user_password_decrypt filter like so:
#hpe3par_password = {{ '<encrypted 3par-password>' | openstack_user_password_decrypt }}
# Note that the encrypted value has to be enclosed in quotes
# If you choose not to encrypt the password then the unencrypted password
# must be set as follows:
#hpe3par_password = <3par-password>
#hpe3par_api_url = https://<3par-san-ipaddr>:8080/api/v1
#hpe3par_cpg = <3par-cpg-name-1>[,<3par-cpg-name-2>,...]
#volume_backend_name = <3par-backend-name>
#volume_driver = cinder.volume.drivers.hpe.hpe_3par_fc.HPE3PARFCDriver
#
# End of section for StoreServ (3par) fibre channel cluster

# Start of section for ceph
#
# If you have configured ceph backend storage for cinder you
# must uncomment this section, and replace all strings in angle
# brackets with the correct values for the ceph you have
# configured.  You must also add the section name to the list of
# values in the 'enabled_backends' variable above.
#
# If you have more than one ceph backend you must provide this
# whole section for each ceph backend and provide a unique section name for
# each. For example, replace <unique-section-name> with CEPH_1 for
# one backend and CEPH_2 for the other.
#
#[<unique-section-name>]
#rbd_secret_uuid = <secret-uuid>
#rbd_user = <ceph-cinder-user>
#rbd_pool = <ceph-cinder-volume-pool>
#rbd_ceph_conf = <ceph-config-file>
#volume_driver = cinder.volume.drivers.rbd.RBDDriver
#volume_backend_name = <ceph-backend-name>
#
# End of section for ceph

# Start of section for vmdk
#
# If you have configured vmdk storage for cinder you
# must uncomment this section, and replace all strings in angle
# brackets with the correct values for the cluster you have
# configured.  You must also add the section name to the list of
# values in the 'enabled_backends' variable above.
#
# If you have more than one vmdk backend you must provide this
# whole section for each vmdk backend and provide a unique section name for
# each. For example, replace <unique-section-name> with
# VMDK_1 for one backend and VMDK_2 for the other.
#
#[<unique-section-name>]
#vmware_host_ip = <vmware-host-ip>
#vmware_host_password = <vmware-host-password>
#vmware_host_username = <vmware-host-username>
#vmware_insecure = True
#volume_driver = cinder.volume.drivers.vmware.vmdk.VMwareVcVmdkDriver
#volume_backend_name=<vmdk-backend-name>
#
# End of section for vmdk

# Start of section for Broccade Fiber channel Zone Manager
#
# If you have configured Fibre Channel Volume Driver that supports Zone Manager for cinder you
# must uncomment this section, and replace all strings in angle
# brackets with the correct values you have configured.
# In the below configuration fc_fabric_names can be mutilple names,
# you have to define seperate section for each name with appropriate switch details

#[DEFAULT]
#zoning_mode=fabric

#[fc-zone-manager]
#brcd_sb_connector = cinder.zonemanager.drivers.brocade.brcd_fc_zone_client_cli.BrcdFCZoneClientCLI
#fc_san_lookup_service = cinder.zonemanager.drivers.brocade.brcd_fc_san_lookup_service.BrcdFCSanLookupService
#zone_driver = cinder.zonemanager.drivers.brocade.brcd_fc_zone_driver.BrcdFCZoneDriver
#fc_fabric_names = <unique-fabric-name>

#[<unique-fabric-name>]
#fc_fabric_address = <switch-ip-address>
#fc_fabric_user = <switch-user-name>
#fc_fabric_password = <switch-password>
#principal_switch_wwn = <switch-wwn>
#zoning_policy = initiator-target
#zone_activate = true
#zone_name_prefix = <zone-name-prefix>

# End of section for Broccade Fiber channel Zone Manager

# Start of section for ceph backup
#
# If you have configured ceph backup storage for cinder you
# must uncomment this section, and replace all strings in angle
# brackets with the correct values for the ceph you have
# configured.
#
#[DEFAULT]
#backup_driver = cinder.backup.drivers.ceph
#backup_ceph_conf = <ceph-config-file>
#backup_ceph_user = <ceph-backup-user>
#backup_ceph_pool = <ceph-backup-pool>
#
# End of section for ceph backup
070701000000CB000081A40000000000000000000000015F23024000000407000000000000000000000000000000000000005300000000ardana-cinder-8.0+git.1596129856.263f430/roles/_CND-CMN/templates/cinderlm.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.
#
#}

[DEFAULT]
cinderlm_user = {{ cinderinternal_user }}
cinderlm_password = {{ cinderinternal_password }}
cinderlm_project_name = {{ cinderinternal_project_name }}
# TODO: WIP - move on to v3.0 authentication
cinderlm_auth_url = {{ cinder_keystone.identity_admin_url }}/v2.0
cinderlm_capacity_check = {{ cinderlm_capacity_check }}
cinderlm_ca_cert_file = {{ cinder_keystone.cacert_file }}
070701000000CC000081A40000000000000000000000015F23024000000729000000000000000000000000000000000000005300000000ardana-cinder-8.0+git.1596129856.263f430/roles/_CND-CMN/templates/rootwrap.conf.j2{#
#
# (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.
#
#}
# Configuration for cinder-rootwrap
# This file should be owned by (and only-writeable by) the root user

[DEFAULT]
# List of directories to load filter definitions from (separated by ',').
# These directories MUST all be only writeable by root !
filters_path={%- if deployer_media_legacy_layout|bool %}
                 /etc/cinder/rootwrap.d
             {%- else -%}
                 /etc/cinder/rootwrap.d,{{ 'cinder-common' | venv_dir }}/etc/cinder/rootwrap.d/
             {%- endif %}

# List of directories to search executables in, in case filters do not
# explicitely specify a full path (separated by ',')
# If not specified, defaults to system PATH environment variable.
# These directories MUST all be only writeable by root !
exec_dirs={{ cinder_common_bin_dir }},/sbin,/usr/sbin,/bin,/usr/bin,/usr/local/bin,/usr/local/sbin

# Enable logging to syslog
# Default value is False
use_syslog=False

# Which syslog facility to use.
# Valid values include auth, authpriv, syslog, local0, local1...
# Default value is 'syslog'
syslog_log_facility=syslog

# Which messages to log.
# INFO means log all usage
# ERROR means only log unsuccessful attempts
syslog_log_level=ERROR
070701000000CD000041ED0000000000000000000000075F23024000000000000000000000000000000000000000000000003E00000000ardana-cinder-8.0+git.1596129856.263f430/roles/cinder-monitor070701000000CE000041ED0000000000000000000000025F23024000000000000000000000000000000000000000000000004700000000ardana-cinder-8.0+git.1596129856.263f430/roles/cinder-monitor/defaults070701000000CF000081A40000000000000000000000015F2302400000043C000000000000000000000000000000000000005000000000ardana-cinder-8.0+git.1596129856.263f430/roles/cinder-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.
#
---
process_count_running_lower_bound: 1
process_count_notrunning_upper_bound: 0

monasca_alarm_definition_api_url: >
  {{ MON_AGN.consumes_MON_API.vips.private[0].url ~ '/v2.0' }}

cinder_monitor_json_dir: /var/cache/cinderlm

bin_path: "{% if deployer_media_legacy_layout|bool -%}
                           /usr/local/bin
                       {%- else -%}
                           /usr/bin
                       {%- endif -%}"
070701000000D0000041ED0000000000000000000000025F23024000000000000000000000000000000000000000000000004300000000ardana-cinder-8.0+git.1596129856.263f430/roles/cinder-monitor/meta070701000000D1000081A40000000000000000000000015F230240000002B6000000000000000000000000000000000000004C00000000ardana-cinder-8.0+git.1596129856.263f430/roles/cinder-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: _CND-CMN
  - role: CND-API
070701000000D2000041ED0000000000000000000000025F23024000000000000000000000000000000000000000000000004400000000ardana-cinder-8.0+git.1596129856.263f430/roles/cinder-monitor/tasks070701000000D3000081A40000000000000000000000015F230240000003C2000000000000000000000000000000000000005000000000ardana-cinder-8.0+git.1596129856.263f430/roles/cinder-monitor/tasks/install.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.
#
---

- name: cinder-monitor | install | install cinderlm (legacy)
  include: install_legacy.yml
  when: deployer_media_legacy_layout|bool

- name: cinder-monitor | install | install cinderlm (rpm)
  package:
    name: python-cinderlm
    state: present
  become: yes
  when: deployer_media_legacy_layout|bool == False
070701000000D4000081A40000000000000000000000015F23024000000599000000000000000000000000000000000000005700000000ardana-cinder-8.0+git.1596129856.263f430/roles/cinder-monitor/tasks/install_legacy.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.
#
---

# This can be activated immediately as there are no running daemons
- name: cinder-monitor | install | Install cinderlm venv
  install_package:
    name: cinderlm
    service: cinderlm
    state: present
    activate: act_on
  register: cinderlm_install_result

- name: cinder-monitor | install | Create symlink to cinder_check
  file:
    src: >
      {{ 'cinderlm' |
          bin_dir(cinderlm_install_result.version) }}/cinder_check
    dest: "/usr/local/bin/cinder_check"
    owner: root
    group: root
    state: link

- name: cinder-monitor | install | Create symlink to cinder_diag
  file:
    src: >
      {{ 'cinderlm' |
          bin_dir(cinderlm_install_result.version) }}/cinder_diag
    dest: "/usr/local/bin/cinder_diag"
    owner: root
    group: root
    state: link
070701000000D5000081A40000000000000000000000015F23024000000A24000000000000000000000000000000000000005700000000ardana-cinder-8.0+git.1596129856.263f430/roles/cinder-monitor/tasks/monasca_agents.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.
#
---

# NOTE: Use Cinder API V2 specific URL to avoid potential upgrade issues
- name: cinder-monitor | monasca_agents | Determine appropriate service_api_url value
  set_fact:
    _cinder_api_url: >-
      http://{{ host.bind.CND_API.
                internal.ip_address }}:{{ host.bind.CND_API.
                                          internal.port }}/
  when: cinder_agent is defined and cinder_agent == "True"

# The name value here is the name of Plugin class in the
# detect modules, not the name of the module.
# TODO: address cinder-volume and cinder-back singularity in
#       the built-in process checks
- name: cinder-monitor | monasca_agents | Run Monasca agent cinder detection plugin
  monasca_agent_plugin:
    name: "cinder"
    args: >-
      service_api_url={{ _cinder_api_url }}
      search_pattern=.*versions.*CURRENT.*
  when: cinder_agent is defined and cinder_agent == "True"

- name: cinder-monitor | monasca_agents | Set up output directory for cron job
  file:
    name: "{{ cinder_monitor_json_dir }}"
    mode: 02750
    owner: root
    group: monasca
    state: directory

# Cinder related monitoring should only performed on cinder nodes,
# not on VSA or Ceph nodes.
- name: cinder-monitor | monasca_agents | Set up cinder specific monasca cron jobs
  template:
    src: cinder-monitor-cron.j2
    dest: /etc/cron.d/cinder-monitor-cron
    owner: root
    group: root
    mode: 0644
  when: cinder_agent is defined and cinder_agent == "True"

# ssacli diag needs root privileges
- name: cinder-monitor | monasca_agents | set up block dev monitor cron job
  template:
    src: block-monitor-periodic-cron.j2
    dest: /etc/cron.d/block-monitor-periodic-cron
    owner: root
    group: root
    mode: 0644

- name: cinder-monitor | monasca_agents | Run cinderlm custom detection plugin
  monasca_agent_plugin:
    name: "CinderLMDetect"
    # args should be a space separated list, if specified
  ignore_errors: yes
070701000000D6000081A40000000000000000000000015F230240000019DF000000000000000000000000000000000000005700000000ardana-cinder-8.0+git.1596129856.263f430/roles/cinder-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.
#
---
- include:
    ../../_CND-CMN/tasks/_determine_volume_host.yml

- name: cinder-monitor | monasca_alarms | Set cinder monitor not running here condition
  set_fact:
    _cinder_monitor_cond: " > {{ process_count_notrunning_upper_bound }}"
  when: not _cinder_volume_running_here | bool

- name: cinder-monitor | monasca_alarms | Set cinder monitor running here condition
  set_fact:
    _cinder_monitor_cond: " < {{ process_count_running_lower_bound }}"
  when: _cinder_volume_running_here | bool

- name: cinder-monitor | monasca_alarms | Set cinder monitor facts
  set_fact: "{{ item.name }}='{{ item.pfx }}{{ item.daemon }}{{ item.sfx }}'"
  with_items:
    - daemon: "cinder-volume"
      name: "cinder_volume_running_check"
      pfx: "cinderlm.cinder.cinder_services{component="
      sfx: ",hostname={{ host.my_dimensions.hostname }}}{{ _cinder_monitor_cond }}"
    - daemon: "cinder-backup"
      name: "cinder_backup_running_check"
      pfx: "cinderlm.cinder.cinder_services{component="
      sfx: ",hostname={{ host.my_dimensions.hostname }}}{{ _cinder_monitor_cond }}"

- name: cinder-monitor | monasca_alarms | Setup default email notification method
  monasca_notification_method:
    name: "Default Email"
    type: 'EMAIL'
    address: "root@localhost"
    keystone_url: "{{ cinder_keystone.admin_url }}"
    keystone_user: "{{ cinder_keystone.admin_user }}"
    keystone_password: "{{ cinder_keystone.admin_password }}"
    keystone_project: "{{ cinder_keystone.monasca_tenant }}"
    keystone_project_domain: "{{ cinder_keystone.default_domain_name }}"
    keystone_user_domain: "{{ cinder_keystone.default_domain_name }}"
    keystone_verify: "{{ trusted_ca_bundle }}"
    monasca_api_url: "{{ monasca_alarm_definition_api_url }}"
    overwrite: false
  register: cinder_default_notification_result
  run_once: true

- name: cinder-monitor | monasca_alarms | Backup/Volume running alarm definition
  monasca_alarm_definition:
    name: "Cinder {{ item.name }} running {{ host.my_dimensions.hostname }} check"
    description: >
      Alarms if the cinder {{ item.name }} service is not
      appropriately set up.
    severity: "HIGH"
    expression: "{{ item.expression }}"
    match_by: ["hostname"]
    keystone_url: "{{ cinder_keystone.admin_url }}"
    keystone_user: "{{ cinder_keystone.admin_user }}"
    keystone_password: "{{ cinder_keystone.admin_password }}"
    keystone_project: "{{ cinder_keystone.monasca_tenant }}"
    keystone_project_domain: "{{ cinder_keystone.default_domain_name }}"
    keystone_user_domain: "{{ cinder_keystone.default_domain_name }}"
    keystone_verify: "{{ trusted_ca_bundle }}"
    monasca_api_url: "{{ monasca_alarm_definition_api_url }}"
    state: "{{ cinder_volume_monitor_state }}"
    ok_actions:
      - "{{ cinder_default_notification_result.notification_method_id }}"
    undetermined_actions:
      - "{{ cinder_default_notification_result.notification_method_id }}"
    alarm_actions:
      - "{{ cinder_default_notification_result.notification_method_id }}"
  with_items:
    - expression: "{{ cinder_volume_running_check }}"
      name: "volume"
    - expression: "{{ cinder_backup_running_check }}"
      name: "backup"

# This alarm definition is redundant and is being marked absent
- name: cinder-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: "{{ cinder_keystone.admin_url }}"
    keystone_user: "{{ cinder_keystone.admin_user }}"
    keystone_password: "{{ cinder_keystone.admin_password }}"
    keystone_project: "{{ cinder_keystone.monasca_tenant }}"
    keystone_project_domain: "{{ cinder_keystone.default_domain_name }}"
    keystone_user_domain: "{{ cinder_keystone.default_domain_name }}"
    keystone_verify: "{{ trusted_ca_bundle }}"
    monasca_api_url: "{{ monasca_alarm_definition_api_url }}"
    state: "absent"
  with_items:
    - { name: "Cinderlm diagnostics monitor",
        description: "Alarms if cinder monitoring cannot execute a task",
        severity: "HIGH",
        expression: "cinderlm.cinderlm_check > 0",
        match_by: ["hostname"]}

# Create an alarm for local disks' status
# Needs to be done once for the entire system
- name: cinder-monitor | monasca_alarms | HP local disks alarm definition
  run_once: true
  monasca_alarm_definition:
    name: "Storage {{ item.name }} check"
    description: "Alarms if the {{ item.name }} metric is not OK."
    severity: "HIGH"
    expression: "{{ item.expression }}"
    match_by: ["hostname"]
    keystone_url: "{{ cinder_keystone.admin_url }}"
    keystone_user: "{{ cinder_keystone.admin_user }}"
    keystone_password: "{{ cinder_keystone.admin_password }}"
    keystone_project: "{{ cinder_keystone.monasca_tenant }}"
    keystone_project_domain: "{{ cinder_keystone.default_domain_name }}"
    keystone_user_domain: "{{ cinder_keystone.default_domain_name }}"
    keystone_verify: "{{ trusted_ca_bundle }}"
    monasca_api_url: "{{ monasca_alarm_definition_api_url }}"
    state: present
    ok_actions:
      - "{{ cinder_default_notification_result.notification_method_id }}"
    undetermined_actions:
      - "{{ cinder_default_notification_result.notification_method_id }}"
    alarm_actions:
      - "{{ cinder_default_notification_result.notification_method_id }}"
  with_items:
    # Note > 0 also picks up a warning
    # - its legitimate to alarm for a drive warning
    - expression: "cinderlm.hp_hardware.ssacli.logical_drive\
                    {component=logical_drive,service=block-storage\
                    ,sub_component=lun_status} > 0"
      name: "faulty lun"
    - expression: "cinderlm.hp_hardware.ssacli.physical_drive\
                    {component=physical_drive,service=block-storage} > 0"
      name: "faulty drive"
070701000000D7000081A40000000000000000000000015F230240000005CD000000000000000000000000000000000000005B00000000ardana-cinder-8.0+git.1596129856.263f430/roles/cinder-monitor/tasks/monasca_api_alarms.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.
#
---

# NOTE: Construct URL the same way as previous versions to avoid upgrade issues
- name: cinder-monitor | monasca_api_alarms | Construct VIP URL for Active check
  set_fact:
    _cinder_vip_url: "{{ item.url }}"
  with_items:
    - url: "{{ CND_API | item ('advertises.vips.private[0].protocol') }}:\
          //{{ CND_API | item ('advertises.vips.private[0].host') }}:\
          {{ CND_API | item ('advertises.vips.private[0].port') }}/"

# NOTE: Admin endpoint may not be accessible from internal nodes
#       in the long term.
- name: cinder-monitor | monasca_api_alarms | Active check against Cinder VIP
  monasca_agent_plugin:
    name: "httpcheck"
    args: >-
      use_keystone=False
      match_pattern=.*versions.*CURRENT.*
      url={{ _cinder_vip_url }}
      dimensions=service:block-storage,component:cinder-api,vip:internal
070701000000D8000081A40000000000000000000000015F23024000000B1B000000000000000000000000000000000000005F00000000ardana-cinder-8.0+git.1596129856.263f430/roles/cinder-monitor/tasks/monasca_custom_plugins.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.
#
---
#
# 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
# Note: awkward command line splitting because lint complaints otherwise
- name: cinder-monitor | monasca_custom_plugins | Find monasca custom detect plugins
  command: >
    find {{ cinder_detect_plugins_src }} -maxdepth 1 -type
    f -name *detect*.py ! -name __init__.py
  register: cinder_detect_plugins_result
  ignore_errors: yes

# Find custom check modules
# Note: awkward command line splitting because lint complaints otherwise
- name: cinder-monitor | monasca_custom_plugins | Find monasca custom check plugins
  command: >
    find {{ cinder_check_plugins_src }} -maxdepth 1 -type
    f -name *check*.py ! -name __init__.py
  register: cinder_check_plugins_result
  ignore_errors: yes

# Create monasca agent dirs in /usr/lib (if necessary)
- name: cinder-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_check_plugin_dir }}"
    - "{{ monasca_agent_detection_plugin_dir }}"
  when: >
    cinder_check_plugins_result.stdout != "" or
    cinder_detect_plugins_result.stdout != ""

# symlink to custom detect modules
- name: cinder-monitor | monasca_custom_plugins | Install cinderlm 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:
    - "{{ cinder_detect_plugins_result.stdout_lines }}"
  when: cinder_detect_plugins_result.stdout != ""

# symlink to custom check modules
- name: cinder-monitor | monasca_custom_plugins | Install cinderlm 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:
    - "{{ cinder_check_plugins_result.stdout_lines }}"
  when: cinder_check_plugins_result.stdout != ""
070701000000D9000041ED0000000000000000000000025F23024000000000000000000000000000000000000000000000004800000000ardana-cinder-8.0+git.1596129856.263f430/roles/cinder-monitor/templates070701000000DA000081A40000000000000000000000015F23024000000403000000000000000000000000000000000000006700000000ardana-cinder-8.0+git.1596129856.263f430/roles/cinder-monitor/templates/block-monitor-periodic-cron.j2{#
#
# (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.
#
#}
# Cronjob that runs diags and emits json to be reaped by monasca monitor
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=""
*/5 * * * * root {{ bin_path }}/cinder_diag --ssacli --json > {{ cinder_monitor_json_dir }}/ssacli_diag.log 2>&1 && mv {{ cinder_monitor_json_dir }}/ssacli_diag.log {{ cinder_monitor_json_dir }}/ssacli_diag.json
070701000000DB000081A40000000000000000000000015F23024000000518000000000000000000000000000000000000005F00000000ardana-cinder-8.0+git.1596129856.263f430/roles/cinder-monitor/templates/cinder-monitor-cron.j2{#
#
# (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.
#
#}
# Cronjob that runs diags and emits json to be reaped by monasca monitor
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=""
*/7 * * * * root {{ bin_path }}/cinder_diag --cinder-capacity --json > {{ cinder_monitor_json_dir }}/cinder_capacity_diag.log 2>&1 && mv {{ cinder_monitor_json_dir }}/cinder_capacity_diag.log {{ cinder_monitor_json_dir }}/capacity_diag.json
*/3 * * * * root {{ bin_path }}/cinder_diag --cinder-services --json > {{ cinder_monitor_json_dir }}/cinder_services_diag.log 2>&1 && mv {{ cinder_monitor_json_dir }}/cinder_services_diag.log {{ cinder_monitor_json_dir }}/cinder_services_diag.json
070701000000DC000041ED0000000000000000000000025F23024000000000000000000000000000000000000000000000004300000000ardana-cinder-8.0+git.1596129856.263f430/roles/cinder-monitor/vars070701000000DD000081A40000000000000000000000015F23024000000525000000000000000000000000000000000000004C00000000ardana-cinder-8.0+git.1596129856.263f430/roles/cinder-monitor/vars/main.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.
#
---
#
# Define vars used during monasca custom agent install
#
cinderlm_project: cinderlm

cinderlm_project_src: "{% if deployer_media_legacy_layout|bool -%}
                           /opt/stack/service/{{ cinderlm_project }}/venv/lib/python2.7/site-packages/{{ cinderlm_project }}
                       {%- else -%}
                           /usr/lib/python2.7/site-packages/{{ cinderlm_project }}/
                       {%- endif -%}"

# path where custom check plugin(s) may be found (a valid path for 'find')
cinder_check_plugins_src: "{{ cinderlm_project_src }}/monasca/check_plugins"
cinder_detect_plugins_src: "{{ cinderlm_project_src }}/monasca/detect_plugins"
07070100000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000B00000000TRAILER!!!719 blocks
openSUSE Build Service is sponsored by