Add ability to pass hardware metadata

Related-Prod: PRODX-00000
Change-Id: I4c377558ffe13e28f8ac5ced45262ff67556f46c
diff --git a/de/heat-templates/top.yaml b/de/heat-templates/top.yaml
index 957243e..ff01525 100644
--- a/de/heat-templates/top.yaml
+++ b/de/heat-templates/top.yaml
@@ -142,6 +142,10 @@
   metallb_address_pools:
     type: comma_delimited_list
     default: ''
+  hardware_metadata:
+    description: The content of lab metadata.
+    default: ''
+    type: string
 
 resources:
   key_pair:
@@ -191,6 +195,7 @@
       public_net_id: { get_param: public_net_id }
       host_interface: { get_param: host_interface }
       functions_override: { get_param: functions_override }
+      hardware_metadata: { get_param: hardware_metadata}
 
   masters:
     type: OS::Heat::ResourceGroup
@@ -218,6 +223,7 @@
           host_interface: { get_param: host_interface }
           ucp_master_host: { get_attr: [ucp, server_private_ip] }
           functions_override: { get_param: functions_override }
+          hardware_metadata: { get_param: hardware_metadata}
 
   workers:
     type: OS::Heat::ResourceGroup
@@ -250,6 +256,7 @@
           storage_frontend_network: { get_attr: [storage_network, storage_frontend_network_id] }
           storage_frontend_subnet_id: { get_attr: [storage_network, storage_frontend_subnet_id] }
           storage_frontend_network_cidr: { get_param: storage_frontend_network_cidr }
+          hardware_metadata: { get_param: hardware_metadata}
 
   cmps:
     type: OS::Heat::ResourceGroup
@@ -281,6 +288,7 @@
           storage_frontend_network: { get_attr: [storage_network, storage_frontend_network_id] }
           storage_frontend_subnet_id: { get_attr: [storage_network, storage_frontend_subnet_id] }
           storage_frontend_network_cidr: { get_param: storage_frontend_network_cidr }
+          hardware_metadata: { get_param: hardware_metadata}
 
   gtws:
     type: OS::Heat::ResourceGroup
@@ -308,6 +316,7 @@
           host_interface: { get_param: host_interface }
           ucp_master_host: { get_attr: [ucp, server_private_ip] }
           functions_override: { get_param: functions_override }
+          hardware_metadata: { get_param: hardware_metadata}
 
   lmas:
     type: OS::Heat::ResourceGroup
@@ -339,6 +348,7 @@
           storage_frontend_network: { get_attr: [storage_network, storage_frontend_network_id] }
           storage_frontend_subnet_id: { get_attr: [storage_network, storage_frontend_subnet_id] }
           storage_frontend_network_cidr: { get_param: storage_frontend_network_cidr }
+          hardware_metadata: { get_param: hardware_metadata}
 
   osds:
     type: OS::Heat::ResourceGroup
@@ -374,6 +384,7 @@
           storage_backend_network: { get_attr: [storage_network, storage_backend_network_id] }
           storage_backend_subnet_id: { get_attr: [storage_network, storage_backend_subnet_id] }
           storage_backend_network_cidr: { get_param: storage_backend_network_cidr }
+          hardware_metadata: { get_param: hardware_metadata}
 
   ntws:
     type: OS::Heat::ResourceGroup
@@ -401,6 +412,7 @@
           host_interface: { get_param: host_interface }
           ucp_master_host: { get_attr: [ucp, server_private_ip] }
           functions_override: { get_param: functions_override }
+          hardware_metadata: { get_param: hardware_metadata}
 
 outputs:
   ucp_ips:
@@ -444,3 +456,27 @@
     value: { get_param: live_migration_interface }
   metallb_address_pools:
     value: { get_param: metallb_address_pools }
+  ucp_wc_data:
+    description: Metadata from ucp
+    value: { get_attr: [ucp, wc_data] }
+  masters_wc_data:
+    description: Metadata from masters
+    value: { get_attr: [masters, wc_data] }
+  workers_wc_data:
+    description: Metadata from workers
+    value: { get_attr: [workers, wc_data] }
+  cmps_wc_data:
+    description: Metadata from cmps
+    value: { get_attr: [cmps, wc_data] }
+  gtws_wc_data:
+    description: Metadata from gtws
+    value: { get_attr: [gtws, wc_data] }
+  lmas_wc_data:
+    description: Metadata from lmas
+    value: { get_attr: [lmas, wc_data] }
+  osds_wc_data:
+    description: Metadata from osds
+    value: { get_attr: [osds, wc_data] }
+  ntws_wc_data:
+    description: Metadata from ntws
+    value: { get_attr: [ntws, wc_data] }