2015-06-29 24 views
0

這是我正在使用jira-python python模塊將一些日誌記錄自動化到JIRA時得到的錯誤。JIRA無法識別cURL調用中的字典對象

Traceback (most recent call last): 
    File "/home/csd-user/test/libs/utils/butler.py", line 217, in <module> 
    main() 
    File "/home/csd-user/test/libs/utils/butler.py", line 214, in main 
    b.log_bug_exec(url) 
    File "/home/csd-user/test/libs/utils/butler.py", line 47, in log_bug_exec 
    cls.process_file(stdout) 
    File "/home/csd-user/test/libs/utils/butler.py", line 108, in process_file 
    cls.submit_bug(bug) 
    File "/home/csd-user/test/libs/utils/butler.py", line 207, in submit_bug 
    iss = cls.my_server.create_issue(fields=bug.json_dict['fields']) 
    File "/opt/clearsky/lib/python2.7/site-packages/jira/client.py", line 706, in create_issue 
    r = self._session.post(url, data=json.dumps(data)) 
    File "/opt/clearsky/lib/python2.7/site-packages/jira/resilientsession.py", line 81, in post 
    return self.__verb('POST', url, **kwargs) 
    File "/opt/clearsky/lib/python2.7/site-packages/jira/resilientsession.py", line 74, in __verb 
    raise_on_error(r, verb=verb, **kwargs) 
    File "/opt/clearsky/lib/python2.7/site-packages/jira/utils.py", line 120, in raise_on_error 
    r.status_code, error, r.url, request=request, response=r, **kwargs) 
# This is the important part... 
jira.utils.JIRAError: JiraError HTTP 400 
    text: data was not an object 
    url: https://jira.clearsky-data.net/rest/api/2/issue 

我的問題是,據我所知,我傳遞的字典對象是完全有效的。

BUG FIELDS :: {'environment': 'node => 62-qa-driver12 (M3 - HA Only)\nversion => \nurl => https://jenkins.clearsky-data.net/job/BugLoggerTest/144/\ntimestamp => 2015-06-29_11-11-15\njob name => BugLoggerTest\nbuild number => 144\nversion number => Not present. Check git hash. Maybe add in processing of full failure list!\n', 'description': '', 'summary': 'Fill in Something', 'project': {'key': 'QABL'}, 'assignee': 'qa-auto', 'issuetype': {'name': 'Bug'}, 'priority': {'name': 'Major'}} 


CLASS :: <type 'dict'> 

由該格式化......

# creating JSON object (bug should not have to be changed after initialization) 
     self.json_dict = ({"fields": { 
      "project": {'key': self.project}, 
      "issuetype": {'name': self.issue_type}, 
      "priority": {'name': self.priority}, 
      "assignee": self.assignee, 
      "environment": self.environment, 
      "description": self.description, 
      "summary": self.summary } }) 

這是爲了創造一個被拋出錯誤的問題,該呼叫:

iss = cls.my_server.create_issue(fields=bug.json_dict['fields']) 
# This calls a cURL POST or PUT command. 

回答

0

你的受讓人是不是有什麼JIRA預期:

"assignee": self.assignee, 

手LD讀取

"assignee": {'name': self.assignee} 

我看到它在update example

issue.update(summary='new summary', description='A new summary was added') 
issue.update(assignee={'name': 'new_user'})