| Summary: | XMLRPC: various object ids returned as string instead of int | ||
|---|---|---|---|
| Product: | [Other] TCMS | Reporter: | Petr Šplíchal <psplicha> |
| Component: | Application | Assignee: | Yuguang Wang <yuwang> |
| Status: | CLOSED CURRENTRELEASE | QA Contact: | tools-bugs <tools-bugs> |
| Severity: | high | Docs Contact: | |
| Priority: | high | ||
| Version: | 3.5 | CC: | ctang, dli, junzhang, nli, ohudlick, vchen |
| Target Milestone: | --- | Keywords: | Regression |
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | 3.6.0-1 | Doc Type: | Bug Fix |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2011-11-08 08:05:03 UTC | Type: | --- |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Bug Depends On: | |||
| Bug Blocks: | 593666 | ||
Actually, I'm seeing similar change in other places, for example
TestCase.get_bugs() returns bug ids as string as well:
{'bug_id': '697470', <--------------------------------
'bug_system': 'Red Hat\nBugzilla',
'bug_system_id': 1,
'case': '/CoreOS/python/Regression/bz697470-uid-and-gid-overflows',
'case_id': 108189,
'case_run': 'None',
'case_run_id': None,
'description': 'None',
'id': '15864',
'summary': 'None'},
This is breaking more and more of our scripts. Today I had to
investigate and provide a workaround fix for another tool, already
4th if I count well.
What is the purpose of this change? Shall we expect other integers
to be provided in the future as strings as well? Could we get soon
the previous behavior to minimize further regressions?
And the story continues...
[INFO] Fetching test case TC#6595
[DEBUG] Initializing test case TC#6595
[DEBUG] {'alias': 'None',
'arguments': '',
'author': 'psplicha',
'author_id': 2117,
'case_id': '6595',
'case_status': 'CONFIRMED',
'case_status_id': 2,
'category': 'Security',
'category_id': 228,
'create_date': '2009-04-10 13:37:47',
'default_tester': 'psplicha',
'default_tester_id': 2117,
'estimated_time': '00:05:00',
'is_automated': '1',
'is_automated_proposed': 'False',
'notes': 'None',
Automated field returned as string '0'/'1' while proposed as
'True'/'False'. Hey, this is becoming really inconsistent!
Are the values consistent with the XML-RPC docs linked from Nitrate WUI? Or will we need updating that too? https://tcms.engineering.redhat.com/xmlrpc/ (In reply to comment #3) > Are the values consistent with the XML-RPC docs linked from Nitrate WUI? Or > will we need updating that too? > https://tcms.engineering.redhat.com/xmlrpc/ Unfortunately the documentation is quite terse regarding the values and types returned by xmlrpc methods, for an example: TestCase.get Returns: A blessed TestCase object Hash For another regression caused by this change see bug 737463. We have come up with a HOTFIX that was dedicated to solve this problem. In this HOTFIX version, regarding to XMLRPC interface, the changes include - 1. In all XMLRPC calls, the returned value will be in their natural types. Taking 'case_id' as the example, now case_id will be in integer type. 2. In all XMLRPC calls, the returned value will include relationships whenever it applies. Taking TestCase.get as an example, the result will contain the key-value pair 'plan': [plan_id, plan_id, plan_id]. In our previous version, this information was never included. 3. When creating a XMLRPC session to the server, will set allow_none to True. We have updated TCMS staging server with this HOTFIX version. Please feel free to test with your automation tools. And it is desired that you let us know of any problems. Staging server XMLRPC location - http://tcms-stage.englab.bne.redhat.com/xmlrpc/ (In reply to comment #7) > Thanks for the hot fix! I've tested the updated API with > our most used tools (tcms-submit, bkr workflow-tcms and > tcms-results) and as for now everything seems to be ok. Thanks Petr Šplíchal's reply. Refer to Petr Šplíchal's comment 7, The problem have been fixed. Change to VERIFIED. |
Description of problem: Previously 'case_id' was returned as int. Now it's a string. This API change breaks some of our scripts. We can work around this but what's the point of this change? Version-Release number of selected component (if applicable): Nitrate 3.5.0 Steps to Reproduce: TestCase.get(46490) Actual results: {'alias': '', 'arguments': '', 'author': 'psplicha', 'author_id': 2117, 'case_id': '46490', ... Expected results: {'alias': '', 'arguments': '', 'author': 'psplicha', 'author_id': 2117, 'case_id': 46490, ...