Hi folks:
I face a problem when I insert a rule into Congress. I want to find out
all of the volumes that are not available status, so I draft a rule like
this:
error(id) :- cinder:volumes(id=id), not cinder:volumes(id=id,
status="available")
But when I create the rule, a error is raised:
(openstack) congress policy rule create chenrui_p "error(id) :-
cinder:volumes(id=id),not cinder:volumes(id=id, status=\"available\")"
ERROR: openstack Syntax error for rule::Errors: Could not reorder rule
error(id) :- cinder:volumes(id, _x_0_1, _x_0_2, _x_0_3, _x_0_4, _x_0_5,
_x_0_6, _x_0_7, _x_0_8), not cinder:volumes(id, _x_1_1, _x_1_2,
"available", _x_1_4, _x_1_5, _x_1_6, _x_1_7, _x_1_8). Unsafe lits: not
cinder:volumes(id, _x_1_1, _x_1_2, "available", _x_1_4, _x_1_5, _x_1_6,
_x_1_7, _x_1_8) (vars set(['_x_1_2', '_x_1_1', '_x_1_6', '_x_1_7',
'_x_1_4', '_x_1_5', '_x_1_8'])) (HTTP 400) (Request-ID:
req-1f4432d6-f869-472b-aa7d-4cf78dd96fa1)
I check the Congress policy docs [1], looks like that the rule don't
break any syntax restrictions.
If I modify the rule like this, it works:
(openstack) congress policy rule create chenrui_p "error(x) :-
cinder:volumes(x, _x_0_1, _x_0_2, _x_0_3, _x_0_4, _x_0_5, _x_0_6, _x_0_7,
_x_0_8),not cinder:volumes(x, _x_0_1, _x_0_2, \"available\",_x_0_4, _x_0_5,
_x_0_6, _x_0_7, _x_0_8)"
+---------+------------------------------------------------------------------------------------------------+
| Field | Value
|
+---------+------------------------------------------------------------------------------------------------+
| comment | None
|
| id | ad121e09-ba0a-45d6-bd18-487d975d5bf5
|
| name | None
|
| rule | error(x) :-
|
| | cinder:volumes(x, _x_0_1, _x_0_2, _x_0_3, _x_0_4, _x_0_5,
_x_0_6, _x_0_7, _x_0_8), |
| | not cinder:volumes(x, _x_0_1, _x_0_2, "available", _x_0_4,
_x_0_5, _x_0_6, _x_0_7, _x_0_8) |
+---------+------------------------------------------------------------------------------------------------+
I'm not sure this is a bug or I miss something from docs, so I need
some feedback from mail list.
Feel free to discuss about it.
[1]:
http://congress.readthedocs.org/en/latest/policy.html#datalog-syntax-restrictions
Best Regards.
__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: [email protected]?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev