[Bug 1655182] Re: keystone-manage mapping_engine tester problems
OpenStack Infra
1655182 at bugs.launchpad.net
Fri Jul 14 22:06:56 UTC 2017
Reviewed: https://review.openstack.org/466873
Committed: https://git.openstack.org/cgit/openstack/keystone/commit/?id=8726573940c435ec75ca72a9ec20d9744561c07c
Submitter: Jenkins
Branch: stable/newton
commit 8726573940c435ec75ca72a9ec20d9744561c07c
Author: John Dennis <jdennis at redhat.com>
Date: Tue Nov 29 11:36:32 2016 -0500
Fix keystone-manage mapping_engine tester
There were several problems with keystone-manage mapping_engine
* It aborts with a backtrace because of wrong number of arguments
passed to the RuleProcessor, it was missing the mapping_id
parameter.
* Error messages related to input data were cryptic and inprecise.
* The --engine-debug option did not work.
A fake mapping_id is now generated and passed to the RuleProcessor.
If there was invalid data passed it was nearly impossible to determine
what was causing the error, the command takes 2 input files, but which
file contained the error? At what line? Why? For example I was
consistently getting this error:
Error while parsing line: '{': need more than 1 value to unpack
and had no idea of what was wrong, the JSON looked valid to me. Turns
out the assertion file is not formatted as JSON (yes this is
documented in the help message but given the rules are JSON formatted
and the RuleProcessor expects a dict for the assertion_data it's
reasonsable to assume the data in the assertion file is formatted as a
JSON object).
The documentation in mapping_combinations.rst added a note in the
section suggesting the use of the keystone-manage mapping_engine
tester alerting the reader to the expected file formats.
The MappingEngineTester class was refactored slighly to allow each
method to know what file it was operating on and emit error messages
that identify the file. The error message in addition to the pathname
now includes the offending line number as well. As a bonus it doesn't
fail if there is a blank line. The error message now looks like this:
assertion file input.txt at line 4 expected 'key: value' but found 'foo' see help for file format
The mapping_engine.LOG.logger level is now explictily set to DEBUG
when --engine-debug is passed instead of (mistakenly assuming it
defaulted to DEBUG) otherwise it's set to WARN.
Closes-Bug: 1655182
Signed-off-by: John Dennis <jdennis at redhat.com>
Change-Id: I2dea0f38b127ec185b79bfe06dd6a212da75cbca
(cherry picked from commit f2d0f8c9ab38172a6e37b02339eac59da911435c)
** Changed in: cloud-archive/newton
Status: Triaged => Fix Committed
--
You received this bug notification because you are a member of Ubuntu
OpenStack, which is subscribed to keystone in Ubuntu.
https://bugs.launchpad.net/bugs/1655182
Title:
keystone-manage mapping_engine tester problems
Status in Ubuntu Cloud Archive:
Fix Released
Status in Ubuntu Cloud Archive mitaka series:
Triaged
Status in Ubuntu Cloud Archive newton series:
Fix Committed
Status in OpenStack Identity (keystone):
Fix Released
Status in keystone package in Ubuntu:
Fix Released
Status in keystone source package in Xenial:
Triaged
Status in keystone source package in Yakkety:
Won't Fix
Bug description:
[Impact]
* A bug in keystone-manage tool prohibits the use of the
mapping_engine command for testing federation rules.
* Users of Keystone Federation will not be able to verify their
mapping rules before pushing these to production.
* Not being able to test rules before pushing to production is a
major operational challenge for our users.
* The proposed upload fixes this by backporting a fix for this issue
from upstream stable/ocata.
[Test Case]
* Deploy keystone using Juju with this bundle:
http://pastebin.ubuntu.com/24855409/
* ssh to keystone unit, grab artifacts and run command:
- mapping.json: http://pastebin.ubuntu.com/24855419/
- input.txt: http://pastebin.ubuntu.com/24855420/
- command:
'keystone-manage mapping_engine --rules mapping.json --input input.txt'
* Observe that command provides no output and that a Python Traceback
is printed in /var/log/keystone/keystone.log
* Install the proposed package, repeat the above steps and observe
that the command now outputs its interpretation and effect of the
rules.
[Regression Potential]
* keystone-manage mapping_engine is a operational test tool and is
solely used by the operator to test their rules.
* The distributed version of this command in Xenial and Yakkety does
currently not work at all.
* The change will make the command work as our users expect it to.
[Original bug description]
There are several problems with keystone-manage mapping_engine
* It aborts with a backtrace because of wrong number of arguments
passed to the RuleProcessor
* The --engine-debug option does not work.
* Error messages related to input data are cryptic and inprecise.
To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-archive/+bug/1655182/+subscriptions
More information about the Ubuntu-openstack-bugs
mailing list