Type creates
diff --git a/cinder/controller.sls b/cinder/controller.sls
index a30b7ca..c687317 100644
--- a/cinder/controller.sls
+++ b/cinder/controller.sls
@@ -36,6 +36,28 @@
   - require:
     - service: cinder_controller_services
 
+{# new way #}
+
+{%- for backend_name, backend in controller.get('backend', {}).iteritems() %}
+
+cinder_type_create_{{ backend_name }}:
+  cmd.run:
+  - name: "source /root/keystonerc; cinder type-create {{ backend_name }}"
+  - unless: "source /root/keystonerc; cinder type-list | grep {{ backend_name }}"
+  - require:
+    - service: cinder_controller_services
+
+cinder_type_update_{{ backend_name }}:
+  cmd.run:
+  - name: "source /root/keystonerc; cinder type-key {{ backend_name }} set volume_backend_name={{ backend.get('name', backend_name) }}"
+  - unless: "source /root/keystonerc; cinder extra-specs-list | grep \"{u'volume_backend_name': u'{{ backend.get('name', backend_name) }}'}\""
+  - require:
+    - cmd: cinder_type_create_{{ backend_name }}
+
+{%- endfor %}
+
+{# old way #}
+
 {% for type in controller.get('types', []) %}
 
 cinder_type_create_{{ type.name }}: