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: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev