(self, releases)
| 511 | return data |
| 512 | |
| 513 | def updateSoftware(self, releases): |
| 514 | self._status = 'updating' |
| 515 | self._releases = releases |
| 516 | releaseInfo = [] |
| 517 | platforms = { |
| 518 | self.data['variant']['id']: self.data['platform'] |
| 519 | } |
| 520 | platforms.update({p['variant']['id']: p['platform'] for p in self.data['additional'] if 'platform' in p}) |
| 521 | |
| 522 | for rel in releases: |
| 523 | try: |
| 524 | r = requests.get( |
| 525 | '%s/astrobox/software/release/%s' % (roConfig('cloud.apiHost'), rel), |
| 526 | auth = self._checkAuth(), |
| 527 | headers = self._requestHeaders |
| 528 | ) |
| 529 | |
| 530 | if r.status_code == 200: |
| 531 | data = r.json() |
| 532 | |
| 533 | if data and 'download_url' in data and 'platform' in data and 'variant' in data and 'id' in data['variant']: |
| 534 | |
| 535 | if data['platform'] is None or ( data['variant']['id'] in platforms and data['platform'] == platforms[data['variant']['id']]): |
| 536 | releaseInfo.append(data) |
| 537 | |
| 538 | else: |
| 539 | self._logger.error('Invalid Platform: %s' % data['platform']) |
| 540 | self._status = 'failed' |
| 541 | return False |
| 542 | |
| 543 | else: |
| 544 | self._logger.error('Invalid Server response:') |
| 545 | self._logger.error(data) |
| 546 | self._status = 'failed' |
| 547 | return False |
| 548 | |
| 549 | else: |
| 550 | self._logger.error('Error updating software release info. Server returned: %d' % r.status_code) |
| 551 | self._status = 'failed' |
| 552 | return False |
| 553 | |
| 554 | except Exception as e: |
| 555 | self._logger.error('Error updating software release info: %s' % e, exc_info = True) |
| 556 | self._status = 'failed' |
| 557 | return False |
| 558 | |
| 559 | if releaseInfo: |
| 560 | def progressCb(phase, progress, message): |
| 561 | eventManager().fire(Events.SOFTWARE_UPDATE, { |
| 562 | 'completed': False, |
| 563 | 'progress': progress, |
| 564 | 'status': self._status, |
| 565 | 'message': message |
| 566 | }) |
| 567 | |
| 568 | self.lastCompletionPercent = progress |
| 569 | self.lastMessage = message |
| 570 |
no test coverage detected