def test_parse_platforms(self): parser = role_loader.RoleMetaParser({ 'galaxy_info': { 'platforms': [{ 'name': 'Ubuntu', 'versions': ['trusty', 'xenial'] }, { 'name': 'RHEL', 'versions': ['all'] }] }, 'dependencies': [] }) platforms = parser.parse_platforms() assert platforms == [ models.PlatformInfo('Ubuntu', ['trusty', 'xenial']), models.PlatformInfo('RHEL', ['all']), ]
def parse_platforms(self): meta_platforms = self.metadata.get('platforms') if not meta_platforms: return [] if not isinstance(meta_platforms, collections.Sequence): raise exc.ContentLoadError( 'Expected "platforms" in metadata to be a list.') platforms = [] for idx, platform in enumerate(meta_platforms): name = platform.get('name', None) if not name: continue versions = platform.get('versions', ['all']) # TODO: Validate versions platforms.append(models.PlatformInfo(name, versions)) return platforms
def parse_platforms(self): meta_platforms = self.metadata.get('platforms') if not meta_platforms: return [] if not isinstance(meta_platforms, collections.Sequence): raise exc.ContentLoadError( 'Expected "platforms" in metadata to be a list.') platforms = [] for idx, platform in enumerate(meta_platforms): try: name = platform['name'] except KeyError: self.log.warning( 'No name specified for platform [{0}], skipping' .format(idx)) continue versions = platform.get('versions', ['all']) # TODO: Validate versions platforms.append(models.PlatformInfo(name, versions)) return platforms