Merge pull request #349 from ecordell/fix-update

Fix all_targets in updater
This commit is contained in:
Vladimir Diaz 2016-08-04 10:09:51 -04:00 committed by GitHub
commit 89bb03c9f6

View file

@ -2335,20 +2335,20 @@ def all_targets(self):
# delegated roles.
self._refresh_targets_metadata(refresh_all_delegated_roles=True)
all_targets = []
# Fetch the targets for the 'targets' role.
all_targets = self._targets_of_role('targets', skip_refresh=True)
# Fetch the targets of the delegated roles. get_rolenames returns
# all roles available on the repository.
delegated_targets = []
for role in tuf.roledb.get_rolenames(self.updater_name):
if role in ['root', 'snapshot', 'targets', 'timestamp']:
continue
else:
all_targets.append(self._targets_of_role(role, all_targets,
skip_refresh=True))
delegated_targets.extend(self._targets_of_role(role, skip_refresh=True))
all_targets.extend(delegated_targets)
return all_targets
@ -2468,8 +2468,8 @@ def _targets_of_role(self, rolename, targets=None, skip_refresh=False):
"""
if targets is None:
targets_of_role = []
targets = []
targets_of_role = list(targets)
logger.debug('Getting targets of role: ' + repr(rolename) + '.')
@ -2485,7 +2485,8 @@ def _targets_of_role(self, rolename, targets=None, skip_refresh=False):
if rolename not in self.metadata['current']:
logger.debug('No metadata for ' + repr(rolename) + '.'
' Unable to determine targets.')
return []
# Get the targets specified by the role itself.
for filepath, fileinfo in six.iteritems(self.metadata['current'][rolename]['targets']):
new_target = {}