From c9c5e158c93e6cd91c18ec09ca911acf170be8c3 Mon Sep 17 00:00:00 2001
From: Steven Hardy <shardy@redhat.com>
Date: Tue, 5 Apr 2016 13:41:22 +0100
Subject: [PATCH] Add resource_group index lookup example

This has been a FAQ in #heat recently, so add an example showing
how you can do a list/map lookup via %index% by using a nested stack.

Change-Id: I0484e0b69baa6cd0b57fe5d12a9ec87c5a56bc6f
---
 hot/resource_group/random.yaml                | 17 ++++++++++++
 .../resource_group_index_lookup.yaml          | 26 +++++++++++++++++++
 2 files changed, 43 insertions(+)
 create mode 100644 hot/resource_group/random.yaml
 create mode 100644 hot/resource_group/resource_group_index_lookup.yaml

diff --git a/hot/resource_group/random.yaml b/hot/resource_group/random.yaml
new file mode 100644
index 00000000..6bbc40b2
--- /dev/null
+++ b/hot/resource_group/random.yaml
@@ -0,0 +1,17 @@
+heat_template_version: 2015-10-15
+
+parameters:
+  lengths:
+    type: comma_delimited_list
+  index:
+    type: number
+
+resources:
+  random:
+    type: OS::Heat::RandomString
+    properties:
+      length: {get_param: [lengths, {get_param: index}]}
+
+outputs:
+  value:
+    value: {get_attr: [random, value]}
diff --git a/hot/resource_group/resource_group_index_lookup.yaml b/hot/resource_group/resource_group_index_lookup.yaml
new file mode 100644
index 00000000..ba380eef
--- /dev/null
+++ b/hot/resource_group/resource_group_index_lookup.yaml
@@ -0,0 +1,26 @@
+heat_template_version: 2015-04-30
+
+description: Shows how to look up list/map values by group index
+
+parameters:
+  random_lengths:
+    type: comma_delimited_list
+    default: [4, 5, 6]
+
+resources:
+  random_group:
+    type: OS::Heat::ResourceGroup
+    properties:
+      count: 3
+      resource_def:
+        type: random.yaml
+        properties:
+          # Note you have to pass the index and the entire list into the
+          # nested template, resolving via %index% doesn't work directly
+          # in the get_param here
+          index: "%index%"
+          lengths: {get_param: random_lengths}
+
+outputs:
+  all_values:
+    value: {get_attr: [random_group, value]}