Merge "fix port_profile"
diff --git a/releasenotes/notes/correct-port-profile-config-option-d67f5cb31f1bc34c.yaml b/releasenotes/notes/correct-port-profile-config-option-d67f5cb31f1bc34c.yaml
new file mode 100644
index 0000000..7510d47
--- /dev/null
+++ b/releasenotes/notes/correct-port-profile-config-option-d67f5cb31f1bc34c.yaml
@@ -0,0 +1,17 @@
+---
+fixes:
+  - |
+    Patch https://review.openstack.org/#/c/499575/ introduced
+    support creating Neutron port with certain capabilities.
+    Currently capabilities list interpreted as string this change
+    fix it.
+
+    tempest.conf
+    [network]
+    port_profile = capabilities:[switchdev]
+
+    result:
+    {'capabilities':'[switchdev]'}
+
+    expected:
+    {'capabilities': ['switchdev']}
diff --git a/tempest/config.py b/tempest/config.py
index e431754..fbe18a3 100644
--- a/tempest/config.py
+++ b/tempest/config.py
@@ -20,6 +20,7 @@
 
 from oslo_concurrency import lockutils
 from oslo_config import cfg
+from oslo_config import types
 from oslo_log import log as logging
 
 from tempest.lib import exceptions
@@ -627,6 +628,7 @@
 network_group = cfg.OptGroup(name='network',
                              title='Network Service Options')
 
+ProfileType = types.Dict(types.List(types.String(), bounds=True))
 NetworkGroup = [
     cfg.StrOpt('catalog_type',
                default='network',
@@ -690,10 +692,11 @@
                     " with pre-configured ports."
                     " Supported ports are:"
                     " ['normal','direct','macvtap']"),
-    cfg.DictOpt('port_profile',
-                default={},
-                help="port profile to use when launching instances"
-                     " with pre-configured ports."),
+    cfg.Opt('port_profile',
+            type=ProfileType,
+            default={},
+            help="port profile to use when launching instances"
+                 " with pre-configured ports."),
     cfg.ListOpt('default_network',
                 default=["1.0.0.0/16", "2.0.0.0/16"],
                 help="List of ip pools"