feature flag: Policy feature enabled config group
A new configuration group ``[policy_feature_enabled]`` has been added to
Patrole which will be responsible for collecting the feature flags to be
used for newly introduced policies or policies that were changed in a
backwards-incompatible way.
* create_port_fixed_ips_ip_address_policy (Neutron)
* update_port_fixed_ips_ip_address_policy (Neutron)
* limits_extension_used_limits_policy (Cinder)
* volume_extension_volume_actions_attach_policy (Cinder)
* volume_extension_volume_actions_reserve_policy (Cinder)
* volume_extension_volume_actions_unreserve_policy (Cinder)
These feature flags will be supported until Pike release cycle
is EOL.
The motivation behind these feature flags is [0] which adds
Pike/Queens gating to Patrole. However, in Queens, Neutron
and Cinder renamed or removed a few policies in a backwards-
incompatible way. These policies can be reviewed here: [1].
This PS requires another PS [2] in devstack's lib/tempest
because Patrole, being a branchless project and hosting the
Patrole devstack plugin itself, must fall back to Tempest's
devstack script to list out the backwards-incompatible
policies in Pike.
A documentation update will also come in a follow up with
information on these feature flags.
[0] I76c4a9b8737bf94f230ab141def652b054120f3b
[1] e.g. http://logs.openstack.org/51/547851/4/check/patrole-member-pike/139c534/job-output.txt.gz#_2018-03-22_21_46_08_392229
[2] I00bdeff9474c54d38b6d6844a041b305bec01ad8
Change-Id: Ia0d9847908a8e723446c16465d68cd7f622c04cc
diff --git a/patrole_tempest_plugin/plugin.py b/patrole_tempest_plugin/plugin.py
index a214892..8af6a69 100644
--- a/patrole_tempest_plugin/plugin.py
+++ b/patrole_tempest_plugin/plugin.py
@@ -21,7 +21,7 @@
from tempest import config
from tempest.test_discover import plugins
-from patrole_tempest_plugin import config as project_config
+from patrole_tempest_plugin import config as pconfig
RBACLOG = logging.getLogger('rbac_reporting')
@@ -64,16 +64,23 @@
def register_opts(self, conf):
config.register_opt_group(
conf,
- project_config.patrole_group,
- project_config.PatroleGroup)
+ pconfig.patrole_group,
+ pconfig.PatroleGroup)
config.register_opt_group(
conf,
- project_config.patrole_log_group,
- project_config.PatroleLogGroup)
+ pconfig.patrole_log_group,
+ pconfig.PatroleLogGroup)
+ config.register_opt_group(
+ conf,
+ pconfig.policy_feature_enabled,
+ pconfig.PolicyFeatureEnabledGroup)
if conf.patrole_log.enable_reporting:
self._configure_per_test_logging(conf)
def get_opt_lists(self):
- return [(project_config.patrole_group.name,
- project_config.PatroleGroup)]
+ return [
+ (pconfig.patrole_group.name, pconfig.PatroleGroup),
+ (pconfig.policy_feature_enabled.name,
+ pconfig.PolicyFeatureEnabledGroup)
+ ]