This commit is contained in:
@@ -52,13 +52,16 @@ func (s *NFSService) ApplyConfiguration(exports []models.NFSExport) error {
|
||||
return fmt.Errorf("replace exports: %w", err)
|
||||
}
|
||||
|
||||
// Reload NFS exports
|
||||
if err := s.reloadExports(); err != nil {
|
||||
// Reload NFS exports with error recovery
|
||||
reloadErr := s.reloadExports()
|
||||
if reloadErr != nil {
|
||||
// Try to restore backup on failure
|
||||
if _, err2 := os.Stat(backupPath); err2 == nil {
|
||||
os.Rename(backupPath, s.exportsPath)
|
||||
if restoreErr := os.Rename(backupPath, s.exportsPath); restoreErr != nil {
|
||||
return fmt.Errorf("reload failed and backup restore failed: reload=%v, restore=%v", reloadErr, restoreErr)
|
||||
}
|
||||
}
|
||||
return fmt.Errorf("reload exports: %w", err)
|
||||
return fmt.Errorf("reload exports: %w", reloadErr)
|
||||
}
|
||||
|
||||
return nil
|
||||
|
||||
@@ -55,13 +55,16 @@ func (s *SMBService) ApplyConfiguration(shares []models.SMBShare) error {
|
||||
return fmt.Errorf("replace config: %w", err)
|
||||
}
|
||||
|
||||
// Reload Samba service
|
||||
if err := s.reloadService(); err != nil {
|
||||
// Reload Samba service with retry
|
||||
reloadErr := s.reloadService()
|
||||
if reloadErr != nil {
|
||||
// Try to restore backup on failure
|
||||
if _, err2 := os.Stat(backupPath); err2 == nil {
|
||||
os.Rename(backupPath, s.configPath)
|
||||
if restoreErr := os.Rename(backupPath, s.configPath); restoreErr != nil {
|
||||
return fmt.Errorf("reload failed and backup restore failed: reload=%v, restore=%v", reloadErr, restoreErr)
|
||||
}
|
||||
}
|
||||
return fmt.Errorf("reload service: %w", err)
|
||||
return fmt.Errorf("reload service: %w", reloadErr)
|
||||
}
|
||||
|
||||
return nil
|
||||
|
||||
Reference in New Issue
Block a user