Merge "Move to Mirantis owned docker images for tests         - This is a temporary solution until we have our own images"
diff --git a/README.rst b/README.rst
index 00a74c4..1d03977 100644
--- a/README.rst
+++ b/README.rst
@@ -743,7 +743,7 @@
                 - flat # possible values - 'flat' or 'vlan'
             sriov_net:
               mtu: 9000 # Optional, defaults to 1500
-              vlan_range: '100:200' # Optional
+              vlan_range: '100:200,300:400' # Optional
               types:
                 - vlan
             ext_net2:
diff --git a/neutron/client/resources/init.sls b/neutron/client/resources/init.sls
index 8920064..090ebb7 100644
--- a/neutron/client/resources/init.sls
+++ b/neutron/client/resources/init.sls
@@ -11,7 +11,7 @@
 
 {%- for identity_name, identity in client.get('server', {}).iteritems() %}
 
-wait_for_neutron_agents_legacy:
+wait_for_neutron_agents_legacy_{{ identity_name }}:
   module.run:
     - name: neutronng.wait_for_api_ready
     - retries: 90
@@ -33,7 +33,7 @@
     {%- if identity.endpoint_type is defined %}
     - endpoint_type: {{ identity.endpoint_type }}
     - require:
-      - neutronng: wait_for_neutron_agents_legacy
+      - wait_for_neutron_agents_legacy_{{ identity_name }}
     {%- endif %}
 {%- endfor %}
 
diff --git a/neutron/client/resources/v2.sls b/neutron/client/resources/v2.sls
index b5798cd..3bd57b9 100644
--- a/neutron/client/resources/v2.sls
+++ b/neutron/client/resources/v2.sls
@@ -3,7 +3,7 @@
 
 {%- for identity_name, identity in client.get('resources', {}).get('v2', {}).iteritems() %}
 
-wait_for_neutron_agents_v2:
+wait_for_neutron_agents_v2_{{ identity_name }}:
   module.run:
     - name: neutronv2.wait_for_api_ready
     - retries: 90
@@ -42,7 +42,7 @@
     - is_default: {{ network.is_default }}
     {%- endif %}
     - require:
-      - wait_for_neutron_agents_v2
+      - wait_for_neutron_agents_v2_{{ identity_name }}
 
     {%- if network.subnet is defined %}
     {%- for subnet_name, subnet in network.subnet.iteritems() %}
@@ -105,6 +105,9 @@
     {%- if pool.is_default is defined %}
     - is_default: {{ pool.is_default }}
     {%- endif %}
+    {%- if pool.shared is defined %}
+    - shared: {{ pool.shared }}
+    {%- endif %}
     {%- if pool.prefixes is defined %}
     - prefixes:
       {%- for prefix in pool.prefixes %}
diff --git a/neutron/files/ocata/ml2_conf.ini b/neutron/files/ocata/ml2_conf.ini
index 561f518..3f070d9 100644
--- a/neutron/files/ocata/ml2_conf.ini
+++ b/neutron/files/ocata/ml2_conf.ini
@@ -281,7 +281,15 @@
 {%- set network_vlan_ranges = [] %}
 
 {%- for physnet, params in server.backend.get('physnets', {}).iteritems() %}
-{%- do network_vlan_ranges.append([physnet, params.get('vlan_range')]|join(":") if params.get('vlan_range', False) else physnet) if 'vlan' in params.get('types', ['vlan']) %}
+{%-   if 'vlan' in params.get('types', ['vlan']) %}
+{%-     if params.get('vlan_range', False) %}
+{%-       for vlan_range in params.get('vlan_range').split(',') %}
+{%-         do network_vlan_ranges.append([physnet, vlan_range]|join(":")) %}
+{%-       endfor %}
+{%-     else %}
+{%-       do network_vlan_ranges.append(physnet) %}
+{%-     endif %}
+{%-   endif %}
 {%- endfor %}
 
 {%- if not network_vlan_ranges %}
diff --git a/neutron/files/pike/ml2_conf.ini b/neutron/files/pike/ml2_conf.ini
index a953f0a..17818ee 100644
--- a/neutron/files/pike/ml2_conf.ini
+++ b/neutron/files/pike/ml2_conf.ini
@@ -284,7 +284,15 @@
 {%- set network_vlan_ranges = [] %}
 
 {%- for physnet, params in server.backend.get('physnets', {}).iteritems() %}
-{%- do network_vlan_ranges.append([physnet, params.get('vlan_range')]|join(":") if params.get('vlan_range', False) else physnet) if 'vlan' in params.get('types', ['vlan']) %}
+{%-   if 'vlan' in params.get('types', ['vlan']) %}
+{%-     if params.get('vlan_range', False) %}
+{%-       for vlan_range in params.get('vlan_range').split(',') %}
+{%-         do network_vlan_ranges.append([physnet, vlan_range]|join(":")) %}
+{%-       endfor %}
+{%-     else %}
+{%-       do network_vlan_ranges.append(physnet) %}
+{%-     endif %}
+{%-   endif %}
 {%- endfor %}
 
 {%- if not network_vlan_ranges %}
diff --git a/neutron/files/queens/ml2_conf.ini b/neutron/files/queens/ml2_conf.ini
index 6f0ee0d..bb2f126 100644
--- a/neutron/files/queens/ml2_conf.ini
+++ b/neutron/files/queens/ml2_conf.ini
@@ -181,7 +181,15 @@
 {%- set network_vlan_ranges = [] %}
 
 {%- for physnet, params in server.backend.get('physnets', {}).iteritems() %}
-{%- do network_vlan_ranges.append([physnet, params.get('vlan_range')]|join(":") if params.get('vlan_range', False) else physnet) if 'vlan' in params.get('types', ['vlan']) %}
+{%-   if 'vlan' in params.get('types', ['vlan']) %}
+{%-     if params.get('vlan_range', False) %}
+{%-       for vlan_range in params.get('vlan_range').split(',') %}
+{%-         do network_vlan_ranges.append([physnet, vlan_range]|join(":")) %}
+{%-       endfor %}
+{%-     else %}
+{%-       do network_vlan_ranges.append(physnet) %}
+{%-     endif %}
+{%-   endif %}
 {%- endfor %}
 
 {%- if not network_vlan_ranges %}
diff --git a/tests/pillar/control_single.sls b/tests/pillar/control_single.sls
index f6fb4e2..75113f5 100644
--- a/tests/pillar/control_single.sls
+++ b/tests/pillar/control_single.sls
@@ -25,7 +25,7 @@
             - flat
         sriov_net:
           mtu: 9000 # Optional, defaults to 1500
-          vlan_range: '100:200' # Optional
+          vlan_range: '100:200,300:400' # Optional
           types:
             - vlan
         ext_net2: