~psivaa/uci-engine/lander-jenkins-with-proxy

« back to all changes in this revision

Viewing changes to lander/bin/ticket_api.py

  • Committer: Evan Dandrea
  • Date: 2014-03-14 10:37:28 UTC
  • mfrom: (387 ubuntu-ci-services-itself)
  • mto: This revision was merged to the branch mainline in revision 389.
  • Revision ID: evan.dandrea@canonical.com-20140314103728-i9wqk4r17gsya24h
Merge with trunk.

Show diffs side-by-side

added added

removed removed

Lines of Context:
46
46
        resp = resp.read()
47
47
        return json.loads(resp)
48
48
 
 
49
    def fail_ticket(self):
 
50
        url = self._url + '/updateticketstatus/' + self._ticket_id + '/'
 
51
        self._patch(url, {'status': TicketWorkflowStep.FAILED.value})
 
52
 
49
53
    def _patch_pkg_status(self, status):
50
54
        step = TicketWorkflowStep.PKG_BUILDING.value
51
55
        status = status.value
65
69
            state = TicketWorkflowStepStatus.PKG_BUILDING_FAILED
66
70
        self._patch_pkg_status(state)
67
71
 
 
72
    def _patch_subticket_status(self, subticket_id, step, status):
 
73
        url = self._url + '/updatesubticketstatus/' + str(subticket_id) + '/'
 
74
        self._patch(url, {'status': status, 'current_workflow_step': step})
 
75
 
 
76
    def set_subticket_progress(self, data):
 
77
        '''Processes the content of messages with subticket_status.
 
78
 
 
79
        Not all messages will have this content.'''
 
80
        for subticket in data.get('subticket_status', []):
 
81
            self._patch_subticket_status(subticket['id'], subticket['step'],
 
82
                                         subticket['status'])
 
83
            self.process_artifacts(subticket, subticket['id'])
 
84
 
68
85
    def _patch_ticket_status(self, status):
69
86
        step = TicketWorkflowStep.IMAGE_BUILDING.value
70
87
        status = status.value
110
127
        if status == TicketWorkflowStepStatus.PKG_PUBLISHING_COMPLETED:
111
128
            logging.info('publishing is final step, marking ticket completed')
112
129
            step = TicketWorkflowStep.COMPLETED.value
113
 
            status == TicketWorkflowStepStatus.COMPLETED
 
130
            status = TicketWorkflowStepStatus.COMPLETED
114
131
        status = status.value
115
132
        url = self._url + '/updateticketstatus/' + self._ticket_id + '/'
116
133
        self._patch(url, {'status': status, 'current_workflow_step': step})
176
193
        multiple updates. Attempts to create duplicate artifacts should be
177
194
        caught when the artifact is placed in the data store by the creator.'''
178
195
        current_artifacts = self.get_artifact_list(subticket_id)
179
 
        for artifact in data.get('artifacts', []):
180
 
            if artifact['name'] not in current_artifacts:
181
 
                self.add_artifact(artifact['name'], artifact['reference'],
182
 
                                  artifact['type'], subticket_id)
 
196
        artifact_list = data.get('artifacts', None)
 
197
        if artifact_list:
 
198
            for artifact in artifact_list:
 
199
                if artifact['name'] not in current_artifacts:
 
200
                    self.add_artifact(artifact['name'], artifact['reference'],
 
201
                                      artifact['type'], subticket_id)
183
202
 
184
203
    def get_full_ticket(self):
185
204
        url = self._url + '/fullticket/' + self._ticket_id + '/'