Add support for config generation

Change-Id: I146ebb897de78792dcf44fdfbbbff203c2fd70cc
diff --git a/metadata/service/support.yml b/metadata/service/support.yml
index fa72b58..f489ccd 100644
--- a/metadata/service/support.yml
+++ b/metadata/service/support.yml
@@ -9,3 +9,5 @@
         enabled: true
       sphinx:
         enabled: true
+      config:
+        enabled: true
diff --git a/nova/map.jinja b/nova/map.jinja
index 96f8976..27a30a2 100644
--- a/nova/map.jinja
+++ b/nova/map.jinja
@@ -16,7 +16,7 @@
         'services': ['openstack-nova-api', 'openstack-nova-cert', 'openstack-nova-consoleauth', 'openstack-nova-scheduler', 'openstack-nova-conductor', 'openstack-nova-novncproxy'],
         'debug': false,
     },
-}, merge=salt['pillar.get']('nova:controller')) %}
+}, merge=pillar.nova.get('controller', {})) %}
 
 {% set compute = salt['grains.filter_by']({
     'Debian': {
@@ -55,4 +55,4 @@
         'libvirt_bin': '/etc/default/libvirt-bin',
         'libvirt_service': 'libvirt-bin',
     },
-}, grain='oscodename', merge=salt['pillar.get']('nova:compute'))) %}
+}, grain='oscodename', merge=pillar.nova.get('compute', {}))) %}
diff --git a/nova/meta/config.yml b/nova/meta/config.yml
new file mode 100644
index 0000000..492c5a3
--- /dev/null
+++ b/nova/meta/config.yml
@@ -0,0 +1,26 @@
+config:
+  {%- if pillar.nova.controller is defined %}
+  {%- from "nova/map.jinja" import controller with context %}
+  nova.conf:
+    source: "salt://nova/files/{{ controller.version }}/nova-controller.conf.{{ grains.os_family|default('Debian') }}"
+    template: jinja
+  api-paste.ini:
+    source: "salt://nova/files/{{ controller.version }}/api-paste.ini.{{ grains.os_family|default('Debian') }}"
+    template: jinja
+  {%- elif pillar.nova.compute is defined %}
+  {%- from "nova/map.jinja" import compute with context %}
+  nova.conf:
+    source: "salt://nova/files/{{ compute.version }}/nova-compute.conf.{{ grains.os_family|default('Debian') }}"
+    template: jinja
+  {%- if compute.ceph is defined %}
+  secret.xml:
+    source: "salt://nova/files/secret.xml }}"
+    template: jinja
+  {%- endif %}
+  qemu.conf:
+    source: "salt://nova/files/{{ compute.version }}/qemu.conf.{{ grains.os_family|default('Debian') }}"
+    template: jinja
+  libvirtd.conf:
+    source: "salt://nova/files/{{ compute.version }}/libvirtd.conf.{{ grains.os_family|default('Debian') }}"
+    template: jinja
+  {%- endif %}