def test_get_repositories(self): # Setup repos = [{'id': 'matching', 'notes': {pulp_constants.REPO_NOTE_TYPE_KEY: constants.REPO_NOTE_RPM, }, 'importers': [{'config': {}, 'id': ids.YUM_IMPORTER_ID}], 'distributors': [{'id': ids.YUM_DISTRIBUTOR_ID}, {'id': ids.EXPORT_DISTRIBUTOR_ID}] }, {'id': 'non-rpm-repo', 'notes': {}}] self.server_mock.request.return_value = 200, repos distributor_list = [ids.YUM_DISTRIBUTOR_ID, ids.EXPORT_DISTRIBUTOR_ID] # Test command = repo_list.RpmRepoListCommand(self.context) repos = command.get_repositories({}) # Verify self.assertEqual(1, len(repos)) self.assertEqual(repos[0]['id'], 'matching') # Check that the distributors and importer are present self.assertEqual(len(repos[0]['distributors']), 2) for distributor in repos[0]['distributors']: self.assertTrue(distributor['id'] in distributor_list) distributor_list.remove(distributor['id']) self.assertEqual(len(repos[0]['importers']), 1) self.assertEqual(repos[0]['importers'][0]['id'], ids.YUM_IMPORTER_ID)
def test_get_repositories_no_details(self): # Setup repos = [ {'id': 'foo', 'display_name': 'bar', 'notes': {pulp_constants.REPO_NOTE_TYPE_KEY: constants.REPO_NOTE_RPM, }} ] self.server_mock.request.return_value = 200, repos # Test command = repo_list.RpmRepoListCommand(self.context) repos = command.get_repositories({}) # Verify self.assertEqual(1, len(repos)) self.assertEqual(repos[0]['id'], 'foo') self.assertTrue('importers' not in repos[0]) self.assertTrue('distributors' not in repos[0])
def test_get_other_repositories(self): # Setup repos = [{'repo_id': 'matching', 'notes': {pulp_constants.REPO_NOTE_TYPE_KEY: constants.REPO_NOTE_RPM, }, 'distributors': [ {'id': ids.YUM_DISTRIBUTOR_ID}, {'id': ids.EXPORT_DISTRIBUTOR_ID}] }, {'repo_id': 'non-rpm-repo-1', 'notes': {}}] self.server_mock.request.return_value = 200, repos # Test command = repo_list.RpmRepoListCommand(self.context) repos = command.get_other_repositories({}) # Verify self.assertEqual(1, len(repos)) self.assertEqual(repos[0]['repo_id'], 'non-rpm-repo-1')
def test_get_repositories_strip_ssl_key(self): # Setup repos = [{'id': 'matching', 'notes': {pulp_constants.REPO_NOTE_TYPE_KEY: constants.REPO_NOTE_RPM, }, 'importers': [{'config': {'ssl_client_key': 'foo'}}], 'distributors': [] }, {'id': 'non-rpm-repo', 'notes': {}}] self.server_mock.request.return_value = 200, repos # Test command = repo_list.RpmRepoListCommand(self.context) repos = command.get_repositories({}) # Verify imp_config = repos[0]['importers'][0]['config'] self.assertTrue('ssl_client_key' not in imp_config) self.assertTrue('feed_ssl_configured' in imp_config) self.assertEqual(imp_config['feed_ssl_configured'], 'True')
def initialize(context): structure.ensure_repo_structure(context.cli) upload_manager = _upload_manager(context) repo_section = structure.repo_section(context.cli) repo_section.add_command(repo_create_update.RpmRepoCreateCommand(context)) repo_section.add_command(repo_create_update.RpmRepoUpdateCommand(context)) repo_section.add_command(cudl.DeleteRepositoryCommand(context)) repo_section.add_command(repo_list.RpmRepoListCommand(context)) repo_section.add_command( RepoSearchCommand(context, constants.REPO_NOTE_RPM)) copy_section = structure.repo_copy_section(context.cli) copy_section.add_command(copy_commands.RpmCopyCommand(context)) copy_section.add_command(copy_commands.ErrataCopyCommand(context)) copy_section.add_command(copy_commands.DistributionCopyCommand(context)) copy_section.add_command(copy_commands.PackageGroupCopyCommand(context)) copy_section.add_command(copy_commands.PackageCategoryCopyCommand(context)) copy_section.add_command( copy_commands.PackageEnvironmentCopyCommand(context)) copy_section.add_command(copy_commands.AllCopyCommand(context)) copy_section.add_command(copy_commands.SrpmCopyCommand(context)) copy_section.add_command(copy_commands.YumRepoMetadataFileCommand(context)) copy_section.add_command(copy_commands.DrpmCopyCommand(context)) # Disabled as per 950690. We'll likely be able to add these back once the new # yum importer is finished and DRPMs are properly handled. # copy_section.add_command(copy_commands.DrpmCopyCommand(context)) remove_section = structure.repo_remove_section(context.cli) remove_section.add_command(remove.RpmRemoveCommand(context)) remove_section.add_command(remove.SrpmRemoveCommand(context)) remove_section.add_command(remove.DrpmRemoveCommand(context)) remove_section.add_command(remove.ErrataRemoveCommand(context)) remove_section.add_command(remove.PackageGroupRemoveCommand(context)) remove_section.add_command(remove.PackageCategoryRemoveCommand(context)) remove_section.add_command(remove.PackageEnvironmentRemoveCommand(context)) remove_section.add_command(remove.DistributionRemoveCommand(context)) remove_section.add_command(remove.YumMetadataFileRemoveCommand(context)) contents_section = structure.repo_contents_section(context.cli) contents_section.add_command(contents.SearchRpmsCommand(context)) contents_section.add_command(contents.SearchDrpmsCommand(context)) contents_section.add_command(contents.SearchSrpmsCommand(context)) contents_section.add_command(contents.SearchPackageGroupsCommand(context)) contents_section.add_command( contents.SearchPackageCategoriesCommand(context)) contents_section.add_command( contents.SearchPackageEnvironmentsCommand(context)) contents_section.add_command(contents.SearchDistributionsCommand(context)) contents_section.add_command(contents.SearchErrataCommand(context)) contents_section.add_command( contents.SearchYumMetadataFileCommand(context)) # Add the group section, all its subsections, and commands group_export_section = structure.repo_group_export_section(context.cli) renderer = PublishStepStatusRenderer(context) group_export_section.add_command( export.RpmGroupExportCommand(context, renderer)) group_export_section.add_command( export.GroupExportStatusCommand(context, renderer)) uploads_section = structure.repo_uploads_section(context.cli) uploads_section.add_command( package.CreateRpmCommand(context, upload_manager)) uploads_section.add_command( package.CreateSrpmCommand(context, upload_manager)) uploads_section.add_command( errata.CreateErratumCommand(context, upload_manager)) uploads_section.add_command( package_group.CreatePackageGroupCommand(context, upload_manager)) uploads_section.add_command( category.CreatePackageCategoryCommand(context, upload_manager)) uploads_section.add_command( comps.CreateCompsCommand(context, upload_manager)) uploads_section.add_command( environment.CreatePackageEnvironmentCommand(context, upload_manager)) uploads_section.add_command(upload.ResumeCommand(context, upload_manager)) uploads_section.add_command(upload.CancelCommand(context, upload_manager)) uploads_section.add_command(upload.ListCommand(context, upload_manager)) sync_section = structure.repo_sync_section(context.cli) renderer = status.RpmStatusRenderer(context) sync_section.add_command( sync_publish.RunSyncRepositoryCommand(context, renderer)) sync_section.add_command(sync_publish.SyncStatusCommand(context, renderer)) publish_section = structure.repo_publish_section(context.cli) renderer = PublishStepStatusRenderer(context) distributor_id = ids.TYPE_ID_DISTRIBUTOR_YUM publish_section.add_command( sync_publish.RunPublishRepositoryCommand(context, renderer, distributor_id)) publish_section.add_command( sync_publish.PublishStatusCommand(context, renderer)) repo_export_section = structure.repo_export_section(context.cli) renderer = PublishStepStatusRenderer(context) repo_export_section.add_command(export.RpmExportCommand(context, renderer)) repo_export_section.add_command( sync_publish.PublishStatusCommand(context, renderer, description=DESC_EXPORT_STATUS)) sync_schedules_section = structure.repo_sync_schedules_section(context.cli) sync_schedules_section.add_command( sync_schedules.RpmCreateScheduleCommand(context)) sync_schedules_section.add_command( sync_schedules.RpmUpdateScheduleCommand(context)) sync_schedules_section.add_command( sync_schedules.RpmDeleteScheduleCommand(context)) sync_schedules_section.add_command( sync_schedules.RpmListScheduleCommand(context)) sync_schedules_section.add_command( sync_schedules.RpmNextRunCommand(context))