Merge "Cinder add ability to use global logging.conf"
diff --git a/README.rst b/README.rst
index fbdaaf9..6f74af9 100644
--- a/README.rst
+++ b/README.rst
@@ -117,6 +117,20 @@
           enabled: true
 
 
+Volume vmware related options:
+
+.. code-block:: yaml
+
+    cinder:
+      volume:
+        backend:
+          vmware:
+            engine: vmware
+            host_username: vmware
+            host_password: vmware
+            cluster_names: vmware_cluster01,vmware_cluster02
+
+
 Enable CORS parameters
 
 .. code-block:: yaml
@@ -549,6 +563,8 @@
             sf_emulate_512: false
             sf_api_port: 14443
             host: ctl01
+            #for compatibility with old versions
+            sf_account_prefix: PREFIX
 
 Cinder setup with Block Device driver
 
diff --git a/cinder/files/backend/_solidfire.conf b/cinder/files/backend/_solidfire.conf
index 5a76c70..d954121 100644
--- a/cinder/files/backend/_solidfire.conf
+++ b/cinder/files/backend/_solidfire.conf
@@ -14,3 +14,6 @@
 sf_api_port = {{ backend.get('sf_api_port', 443) }}
 {%- endif %}
 volume_driver=cinder.volume.drivers.solidfire.SolidFireDriver
+{%- if backend.sf_account_prefix is defined %}
+sf_account_prefix = {{ backend.sf_account_prefix }}
+{%- endif %}
diff --git a/cinder/files/backend/_vmware.conf b/cinder/files/backend/_vmware.conf
new file mode 100644
index 0000000..c1b8b72
--- /dev/null
+++ b/cinder/files/backend/_vmware.conf
@@ -0,0 +1,124 @@
+
+[{{ backend_name }}]
+
+volume_driver = cinder.volume.drivers.vmware.vmdk.VMwareVcVmdkDriver
+volume_backend_name={{ backend_name }}
+
+# IP address for connecting to VMware vCenter server. (string value)
+#vmware_host_ip = <None>
+{%- if backend.host_ip is defined %}
+vmware_host_ip = {{ backend.host_ip }}
+{%- endif %}
+
+
+# Port number for connecting to VMware vCenter server. (port value)
+# Minimum value: 0
+# Maximum value: 65535
+#vmware_host_port = 443
+{%- if backend.host_port is defined %}
+vmware_host_port = {{ backend.host_port }}
+{%- endif %}
+
+# Username for authenticating with VMware vCenter server. (string value)
+#vmware_host_username = <None>
+vmware_host_username = {{ backend.host_username }}
+
+# Password for authenticating with VMware vCenter server. (string value)
+#vmware_host_password = <None>
+vmware_host_password = {{ backend.host_password }}
+
+
+# Optional VIM service WSDL Location e.g http://<server>/vimService.wsdl.
+# Optional over-ride to default location for bug work-arounds. (string value)
+#vmware_wsdl_location = <None>
+{%- if backend.wsdl_location is defined %}
+vmware_wsdl_location = {{ backend.wsdl_location }}
+{%- endif %}
+
+# Number of times VMware vCenter server API must be retried upon connection
+# related issues. (integer value)
+#vmware_api_retry_count = 10
+{%- if backend.api_retry_count is defined %}
+vmware_api_retry_count = {{ backend.api_retry_count }}
+{%- endif %}
+
+# The interval (in seconds) for polling remote tasks invoked on VMware vCenter
+# server. (floating point value)
+#vmware_task_poll_interval = 2.0
+{%- if backend.task_poll_interval is defined %}
+vmware_task_poll_interval = {{ backend.task_poll_interval }}
+{%- endif %}
+
+# Name of the vCenter inventory folder that will contain Cinder volumes. This
+# folder will be created under "OpenStack/<project_folder>", where
+# project_folder is of format "Project (<volume_project_id>)". (string value)
+#vmware_volume_folder = Volumes
+{%- if backend.volume_folder is defined %}
+vmware_volume_folder = {{ backend.volume_folder }}
+{%- endif %}
+
+# Timeout in seconds for VMDK volume transfer between Cinder and Glance.
+# (integer value)
+#vmware_image_transfer_timeout_secs = 7200
+{%- if backend.image_transfer_timeout_secs is defined %}
+vmware_image_transfer_timeout_secs = {{ backend.image_transfer_timeout_secs }}
+{%- endif %}
+
+# Max number of objects to be retrieved per batch. Query results will be
+# obtained in batches from the server and not in one shot. Server may still
+# limit the count to something less than the configured value. (integer value)
+#vmware_max_objects_retrieval = 100
+{%- if backend.max_objects_retrieval is defined %}
+vmware_max_objects_retrieval = {{ backend.max_objects_retrieval }}
+{%- endif %}
+
+# Optional string specifying the VMware vCenter server version. The driver
+# attempts to retrieve the version from VMware vCenter server. Set this
+# configuration only if you want to override the vCenter server version.
+# (string value)
+#vmware_host_version = <None>
+{%- if backend.host_version is defined %}
+vmware_host_version = {{ backend.host_version }}
+{%- endif %}
+
+# Directory where virtual disks are stored during volume backup and restore.
+# (string value)
+#vmware_tmp_dir = /tmp
+{%- if backend.tmp_dir is defined %}
+vmware_tmp_dir = {{ backend.tmp_dir }}
+{%- endif %}
+
+# CA bundle file to use in verifying the vCenter server certificate. (string
+# value)
+#vmware_ca_file = <None>
+{%- if backend.cacert_file is defined %}
+vmware_ca_file = {{ backend.cacert_file }}
+{%- endif %}
+
+# If true, the vCenter server certificate is not verified. If false, then the
+# default CA truststore is used for verification. This option is ignored if
+# "vmware_ca_file" is set. (boolean value)
+#vmware_insecure = false
+{%- if backend.insecure is defined %}
+vmware_insecure = {{ backend.insecure }}
+{%- endif %}
+
+# Name of a vCenter compute cluster where volumes should be created. (multi
+# valued)
+#vmware_cluster_name =
+{%- for cluster_name in backend.cluster_names.split(',') %}
+vmware_cluster_name = {{ cluster_name }}
+{%- endfor %}
+
+# Maximum number of connections in http connection pool. (integer value)
+#vmware_connection_pool_size = 10
+{%- if backend.connection_pool_size is defined %}
+vmware_connection_pool_size = {{ backend.connection_pool_size }}
+{%- endif %}
+
+# Default adapter type to be used for attaching volumes. (string value)
+# Allowed values: lsiLogic, busLogic, lsiLogicsas, paraVirtual, ide
+#vmware_adapter_type = lsiLogic
+{%- if backend.adapter_type is defined %}
+vmware_adapter_type = {{ backend.adapter_type }}
+{%- endif %}
diff --git a/tests/pillar/volume_single_vmware.sls b/tests/pillar/volume_single_vmware.sls
new file mode 100644
index 0000000..1512040
--- /dev/null
+++ b/tests/pillar/volume_single_vmware.sls
@@ -0,0 +1,95 @@
+cinder:
+  volume:
+    enabled: true
+    version: pike
+    osapi:
+      host: 127.0.0.1
+    database:
+      engine: mysql
+      host: 127.0.0.1
+      port: 3306
+      name: cinder
+      user: cinder
+      password: password
+    identity:
+      engine: keystone
+      host: 127.0.0.1
+      port: 35357
+      tenant: service
+      user: cinder
+      password: password
+      endpoint_type: internalURL
+      region: regionOne
+    glance:
+      host: 127.0.0.1
+      port: 9292
+    logging:
+      log_appender: false
+      log_handlers:
+        watchedfile:
+          enabled: true
+        fluentd:
+          enabled: false
+        ossyslog:
+          enabled: false
+    message_queue:
+      engine: rabbitmq
+      host: 127.0.0.1
+      port: 5672
+      user: openstack
+      password: password
+      virtual_host: '/openstack'
+    storage:
+      engine: storwize
+      host: 192.168.0.1
+      port: 22
+      user: username
+      password: pass
+    backend:
+      vmware:
+        engine: vmware
+        host_username: vmware
+        host_password: vmware
+        cluster_name: vmware_cluster01
+apache:
+  server:
+    enabled: true
+    default_mpm: event
+    mpm:
+      prefork:
+        enabled: true
+        servers:
+          start: 5
+          spare:
+            min: 2
+            max: 10
+        max_requests: 0
+        max_clients: 20
+        limit: 20
+    site:
+      cinder:
+        enabled: false
+        available: true
+        type: wsgi
+        name: cinder
+        wsgi:
+          daemon_process: cinder-wsgi
+          processes: 5
+          threads: 1
+          user: cinder
+          group: cinder
+          display_name: '%{GROUP}'
+          script_alias: '/ /usr/bin/cinder-wsgi'
+          application_group: '%{GLOBAL}'
+          authorization: 'On'
+        host:
+          address: 127.0.0.1
+          name: 127.0.0.1
+          port: 8776
+        log:
+          custom:
+            format: >-
+              %v:%p %{X-Forwarded-For}i %h %l %u %t \"%r\" %>s %D %O \"%{Referer}i\" \"%{User-Agent}i\"
+          error:
+            enabled: true
+            format: '%M'