@@ -341,6 +341,7 @@ def __init__(self):
341
341
self ._download_location = None
342
342
self ._md_hashes = {}
343
343
self ._enabled_system_repositories = []
344
+ self ._repositories_loaded = False
344
345
self ._query_environments = None
345
346
self ._query_groups = None
346
347
@@ -422,6 +423,7 @@ def reset_base(self):
422
423
self ._download_location = None
423
424
self ._md_hashes = {}
424
425
self ._enabled_system_repositories = []
426
+ self ._repositories_loaded = False
425
427
log .debug ("The DNF base has been reset." )
426
428
427
429
def configure_base (self , data : PackagesConfigurationData ):
@@ -1060,6 +1062,9 @@ def _create_repository(self, data: RepoConfigurationData):
1060
1062
:param RepoConfigurationData data: a repo configuration
1061
1063
return dnf.repo.Repo: a DNF repository
1062
1064
"""
1065
+ if self ._repositories_loaded :
1066
+ raise RuntimeError ("Cannot create a new repository. Repositories were already loaded." )
1067
+
1063
1068
repo_sack = self ._base .get_repo_sack ()
1064
1069
repo = repo_sack .create_repo (data .name )
1065
1070
config = simplify_config (repo .get_config ())
@@ -1249,6 +1254,7 @@ def load_repositories(self):
1249
1254
except RuntimeError as e :
1250
1255
log .warning (str (e ))
1251
1256
raise MetadataError (str (e )) from None
1257
+ self ._repositories_loaded = True
1252
1258
log .info ("Loaded repositories." )
1253
1259
1254
1260
def load_repomd_hashes (self ):
0 commit comments