Simulate computes improper result with action description
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
congress |
Fix Released
|
High
|
Tim Hinrichs |
Bug Description
When we made the move to multiple theories, we put in place the restriction that the heads of rules cannot contain policy names. But for action descriptions, this restriction does not work since we want to be able to say that executing some action adds a row to say the nova:servers table, thereby requiring nova:servers+ to appear in the head of the rule.
This oversight causes the policy engine to malfunction when processing action theories, since it assumed the policy name in the head of the rule was always None. There was a test, but that test also had a bug.
For example, here is an action description policy.
nova:p+(x) :- q(x)
action('q')
When simulating action q(1), the policy engine fails to compute that nova:p+(1) is true. In fact, it queries p+(x) instead of nova:p+(x).
Changed in congress: | |
milestone: | none → kilo-3 |
status: | Fix Committed → Fix Released |
Fix proposed to branch: master /review. openstack. org/149431
Review: https:/