Auto-set SwiftMountCheck and SwiftUseLocalDir settings
authorChristian Schwede <cschwede@redhat.com>
Wed, 21 Dec 2016 10:06:44 +0000 (10:06 +0000)
committerChristian Schwede <cschwede@redhat.com>
Fri, 6 Jan 2017 07:32:18 +0000 (08:32 +0100)
This patch automatically sets the options SwiftMountCheck and
SwiftUseLocalDir depending on SwiftRawDisks.

If SwiftRawDisks is set, the usage of a local directory will be
automatically disabled in the ringbuilder and the mount check option
will be enabled.

Change-Id: If58cecc94c25603f50411ffe60ad24c104147c66

puppet/services/swift-ringbuilder.yaml
puppet/services/swift-storage.yaml

index a7ba7ba..2e3c818 100644 (file)
@@ -43,6 +43,16 @@ parameters:
     description: 'Use a local directory for Swift storage services when building rings'
     type: boolean
 
+conditions:
+  swift_use_local_dir:
+    and:
+    - equals:
+      - get_param: SwiftUseLocalDir
+      - true
+    - equals:
+      - get_param: SwiftRawDisks
+      - {}
+
 outputs:
   role_data:
     description: Role data for Swift Ringbuilder configuration.
@@ -59,7 +69,7 @@ outputs:
             expression: $.data.raw_disk_lists.flatten()
             data:
               raw_disk_lists:
-              - {if: [{get_param: SwiftUseLocalDir}, [':%PORT%/d1'], []]}
+              - {if: [swift_use_local_dir, [':%PORT%/d1'], []]}
               - repeat:
                   template: ':%PORT%/DEVICE'
                   for_each:
index 00ae9c3..88fd73a 100644 (file)
@@ -56,6 +56,17 @@ resources:
       DefaultPasswords: {get_param: DefaultPasswords}
       EndpointMap: {get_param: EndpointMap}
 
+conditions:
+  swift_mount_check:
+    or:
+    - equals:
+      - get_param: SwiftMountCheck
+      - true
+    - not:
+        equals:
+        - get_param: SwiftRawDisks
+        - {}
+
 outputs:
   role_data:
     description: Role data for the Swift Proxy role.
@@ -65,7 +76,7 @@ outputs:
       config_settings:
         map_merge:
           - get_attr: [SwiftBase, role_data, config_settings]
-          - swift::storage::all::mount_check: {get_param: SwiftMountCheck}
+          - swift::storage::all::mount_check: {if: [swift_mount_check, true, false]}
             tripleo::profile::base::swift::storage::enable_swift_storage: {get_param: ControllerEnableSwiftStorage}
             tripleo.swift_storage.firewall_rules:
               '123 swift storage':