Merge "Add runtest tests for Ironicv1 module and state"
diff --git a/_modules/runtest/tempest_sections/heat_plugin.py b/_modules/runtest/tempest_sections/heat_plugin.py
index 46731d9..87f11c4 100644
--- a/_modules/runtest/tempest_sections/heat_plugin.py
+++ b/_modules/runtest/tempest_sections/heat_plugin.py
@@ -145,7 +145,7 @@
         if not networks:
             return
         for network_name, network in networks.items():
-            if network['router_external'] is True:
+            if network.get('router_external') is True:
                 return network_name
 
     @property
diff --git a/_modules/runtest/tempest_sections/network.py b/_modules/runtest/tempest_sections/network.py
index af1be32..b66d510 100644
--- a/_modules/runtest/tempest_sections/network.py
+++ b/_modules/runtest/tempest_sections/network.py
@@ -59,7 +59,7 @@
         if not networks:
             return
         for network_name, network in networks.items():
-            if network['router_external'] is True:
+            if network.get('router_external') is True:
                 return network_name
 
     @property
diff --git a/runtest/salttest/modules/openstack/cinderv3.sls b/runtest/salttest/modules/openstack/cinderv3.sls
index 6286b78..90a2b99 100644
--- a/runtest/salttest/modules/openstack/cinderv3.sls
+++ b/runtest/salttest/modules/openstack/cinderv3.sls
@@ -1,3 +1,4 @@
+{%- if pillar.get('runtest',{}).get('openstack_version') not in ('stable/mitaka', 'stable/newton') -%}
 {%- set volume_type_name = 'TestVolumeType' %}
 {%- set image_properties = "[{'op':'add', 'path':'/test_property', 'value': 'test'},]" %}
 
@@ -54,4 +55,6 @@
     - kwargs:
         cloud_name: admin_identity
     - require:
-      - cinderv3_volume_type_create
\ No newline at end of file
+      - cinderv3_volume_type_create
+
+{%- endif -%}
\ No newline at end of file
diff --git a/runtest/salttest/modules/openstack/novav21.sls b/runtest/salttest/modules/openstack/novav21.sls
index ba6b1bc..782f2a3 100644
--- a/runtest/salttest/modules/openstack/novav21.sls
+++ b/runtest/salttest/modules/openstack/novav21.sls
@@ -1,12 +1,7 @@
 {%- set Nova_Aggregate_Test_Name = 'NovaAggregateTestName' %}
 {%- set Nova_Test_Zone = 'NovaTestZone' %}
 {%- set Nova_Test_Flavor = 'NovaTestFlavor' %}
-{%- if salt['grains.get']('saltversion') < '2017.7.0' %}
 {%- set Nova_Test_Flavor_ID = salt['cmd.run']('cat /proc/sys/kernel/random/uuid') %}
-{%- else %}
-{#NOTE random uuid function added in 2017.7.0 salt#}
-{%- set Nova_Test_Flavor_ID = 'random'| uuid %}
-{%- endif %}
 {%- set Nova_Test_Keypair_Name = 'NovaTestKeypairName' %}
 {%- set Nova_Test_Keypair_Pub_Key = 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDx8nkQv/zgGgB4rMYmIf+6A4l6Rr+o/6lHBQdW5aYd44bd8JttDCE/F/pNRr0lRE+PiqSPO8nDPHw0010JeMH9gYgnnFlyY3/OcJ02RhIPyyxYpv9FhY+2YiUkpwFOcLImyrxEsYXpD/0d3ac30bNH6Sw9JD9UZHYcpSxsIbECHw== Generated-by-Nova' %}
 
diff --git a/runtest/salttest/states/openstack/novav21.sls b/runtest/salttest/states/openstack/novav21.sls
index b4d81af..709e0da 100644
--- a/runtest/salttest/states/openstack/novav21.sls
+++ b/runtest/salttest/states/openstack/novav21.sls
@@ -1,10 +1,5 @@
 {%- set Nova_Test_Flavor = 'NovaTestFlavor' %}
-{%- if salt['grains.get']('saltversion') < '2017.7.0' %}
 {%- set Nova_Test_Flavor_ID = salt['cmd.run']('cat /proc/sys/kernel/random/uuid') %}
-{%- else %}
-{#NOTE random uuid function added in 2017.7.0 salt#}
-{%- set Nova_Test_Flavor_ID = 'random'| uuid %}
-{%- endif %}
 {%- set Nova_Aggregate_Test_Name = 'NovaAggregateTestName '%}
 {%- set Nova_Test_Keypair_Name = 'NovaTestKeypairName' %}
 {%- set Nova_Test_Keypair_Pub_Key = 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDx8nkQv/zgGgB4rMYmIf+6A4l6Rr+o/6lHBQdW5aYd44bd8JttDCE/F/pNRr0lRE+PiqSPO8nDPHw0010JeMH9gYgnnFlyY3/OcJ02RhIPyyxYpv9FhY+2YiUkpwFOcLImyrxEsYXpD/0d3ac30bNH6Sw9JD9UZHYcpSxsIbECHw== Generated-by-Nova' %}
diff --git a/runtest/tempest.sls b/runtest/tempest.sls
index 4b6d24a..a2d54e4 100644
--- a/runtest/tempest.sls
+++ b/runtest/tempest.sls
@@ -57,6 +57,13 @@
     - pillar: {{ pillar }}
     - require:
       - tempest_config_file
+    {# Sometimes this task hangs infinitely when using salt 2017.7.0 #}
+    {%- if salt['grains.get']('saltversion') >= '2017.7.0' %}
+    - retry:
+        attempts: 3
+        until: True
+        interval: 10
+    {%- endif %}
 
 {%- endif %}