@@ -229,76 +229,22 @@ def _get_saltenv_directories(self) -> tuple:
229229 )
230230 return saltenv_dir , top_saltenv_dir
231231
232- def create_index_files (self ) -> types .TaskDict :
233- """Create index.html files for repository directories."""
234-
235- def clean () -> None :
236- """Delete the index.html files created by this task."""
237- # Clean repository-specific index files
238- index_files = [
239- self .rootdir / self .INDEX_HTML_FILENAME ,
240- self .rootdir / self .ARCH / self .INDEX_HTML_FILENAME ,
241- ]
242- # Clean shared directory index files if this is scality repo
243- saltenv_dir , top_saltenv_dir = self ._get_saltenv_directories ()
244- if saltenv_dir and top_saltenv_dir :
245- index_files .extend (
246- [
247- # Repository-level saltenv structure
248- saltenv_dir / self .INDEX_HTML_FILENAME ,
249- saltenv_dir / "redhat" / self .INDEX_HTML_FILENAME ,
250- saltenv_dir
251- / "redhat"
252- / str (self ._releasever )
253- / self .INDEX_HTML_FILENAME ,
254- # Top-level saltenv (for health check)
255- top_saltenv_dir / self .INDEX_HTML_FILENAME ,
256- ]
257- )
258-
259- # Actually remove the index.html files
260- for index_file in index_files :
261- if index_file .exists ():
262- index_file .unlink ()
263-
264- def create_index () -> None :
265- """Create empty index.html files in repository directories."""
266- repository_directories = [
267- self .rootdir , # Repository root (e.g., metalk8s-scality-el8)
268- self .rootdir / self .ARCH , # Architecture directory (e.g., x86_64)
269- ]
270-
271- # Also create shared directory index files, but only from scality repo
272- # to avoid doit task conflicts between multiple repositories
273- saltenv_dir , top_saltenv_dir = self ._get_saltenv_directories ()
274- if saltenv_dir and top_saltenv_dir :
275- repository_directories .extend (
276- [
277- # Repository-level saltenv structure
278- saltenv_dir ,
279- saltenv_dir / "redhat" ,
280- saltenv_dir / "redhat" / str (self ._releasever ),
281- # Top-level saltenv (for health check)
282- top_saltenv_dir ,
283- ]
284- )
285-
286- for repository_directory in repository_directories :
287- # Create directory if it doesn't exist, then create index.html
288- repository_directory .mkdir (parents = True , exist_ok = True )
289- index_file = repository_directory / self .INDEX_HTML_FILENAME
290- index_file .touch ()
291- # Set readable permissions for nginx
292- index_file .chmod (0o644 )
232+ def _get_index_file_paths (self ) -> List [Path ]:
233+ """Get all index.html file paths for this repository.
293234
294- # Build targets list - include shared directories only for scality repo
295- targets = [
235+ Returns:
236+ List of all index.html file paths that should be created/cleaned
237+ """
238+ # Repository-specific index files
239+ index_files = [
296240 self .rootdir / self .INDEX_HTML_FILENAME ,
297241 self .rootdir / self .ARCH / self .INDEX_HTML_FILENAME ,
298242 ]
243+
244+ # Add saltenv index files for scality repository
299245 saltenv_dir , top_saltenv_dir = self ._get_saltenv_directories ()
300246 if saltenv_dir and top_saltenv_dir :
301- targets .extend (
247+ index_files .extend (
302248 [
303249 # Repository-level saltenv structure
304250 saltenv_dir / self .INDEX_HTML_FILENAME ,
@@ -312,6 +258,59 @@ def create_index() -> None:
312258 ]
313259 )
314260
261+ return index_files
262+
263+ def _get_repository_directories (self ) -> List [Path ]:
264+ """Get all repository directories that need index.html files.
265+
266+ Returns:
267+ List of directory paths where index.html should be created
268+ """
269+ # Repository-specific directories
270+ repository_directories = [
271+ self .rootdir , # Repository root (e.g., metalk8s-scality-el8)
272+ self .rootdir / self .ARCH , # Architecture directory (e.g., x86_64)
273+ ]
274+
275+ # Add saltenv directories for scality repository
276+ saltenv_dir , top_saltenv_dir = self ._get_saltenv_directories ()
277+ if saltenv_dir and top_saltenv_dir :
278+ repository_directories .extend (
279+ [
280+ # Repository-level saltenv structure
281+ saltenv_dir ,
282+ saltenv_dir / "redhat" ,
283+ saltenv_dir / "redhat" / str (self ._releasever ),
284+ # Top-level saltenv (for health check)
285+ top_saltenv_dir ,
286+ ]
287+ )
288+
289+ return repository_directories
290+
291+ def create_index_files (self ) -> types .TaskDict :
292+ """Create index.html files for repository directories."""
293+
294+ def clean () -> None :
295+ """Delete the index.html files created by this task."""
296+ # Actually remove the index.html files
297+ for index_file in self ._get_index_file_paths ():
298+ if index_file .exists ():
299+ index_file .unlink ()
300+
301+ def create_index () -> None :
302+ """Create empty index.html files in repository directories."""
303+ for repository_directory in self ._get_repository_directories ():
304+ # Create directory if it doesn't exist, then create index.html
305+ repository_directory .mkdir (parents = True , exist_ok = True )
306+ index_file = repository_directory / self .INDEX_HTML_FILENAME
307+ index_file .touch ()
308+ # Set readable permissions for nginx
309+ index_file .chmod (0o644 )
310+
311+ # Build targets list using centralized method
312+ targets = self ._get_index_file_paths ()
313+
315314 task = self .basic_task
316315 task .update (
317316 {
0 commit comments