elog-gen.py : alias inherited metadata

Alias metadata inherited from parent errors such that users don't have
to explicitly know which parent provides the metadata :

using metaName = ParentError::metaName

Change-Id: Idd285766b9f831d19391f46cee1ed2ff320b2c30
Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com>
diff --git a/tools/phosphor-logging/templates/elog-gen-template.mako.hpp b/tools/phosphor-logging/templates/elog-gen-template.mako.hpp
index e39deea..b0dec60 100644
--- a/tools/phosphor-logging/templates/elog-gen-template.mako.hpp
+++ b/tools/phosphor-logging/templates/elog-gen-template.mako.hpp
@@ -44,12 +44,13 @@
 }  // namespace _${classname}
 <%
     meta_string = ', '.join(meta[name])
+    parent_meta = []
 
     parent = parents[name]
     while parent:
-        parent_meta = [parent + "::" + p for p in meta[parent]]
-        parent_meta = ', '.join(parent_meta)
-        meta_string = meta_string + ", " + parent_meta
+        parent_meta += [parent + "::" + p for p in meta[parent]]
+        parent_meta_short = ', '.join(meta[parent])
+        meta_string = meta_string + ", " + parent_meta_short
         parent = parents[parent]
 %>
 struct ${classname}
@@ -60,6 +61,9 @@
     % for b in meta[name]:
     using ${b} = _${classname}::${b};
     % endfor
+    % for b in parent_meta:
+    using ${b.split("::").pop()} = ${b};
+    % endfor
     using metadata_types = std::tuple<${meta_string}>;
 };
 % for s in reversed(namespaces):