Only walk the filesystem during syncuser if writing
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
This commit is contained in:
@@ -53,6 +53,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
||||
- Dynamically calculate version and release from Git. #1162
|
||||
- Update quickstarts to configure firewalld for dhcp. #1133
|
||||
- Omit building the API on EL7. #1171
|
||||
- Syncuser only walks the file system if it is going to write. #1207
|
||||
|
||||
### Fixed
|
||||
|
||||
|
||||
@@ -48,9 +48,6 @@ func SyncUids(containerName string, showOnly bool) error {
|
||||
if err := passwdSync.checkConflicts(); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := passwdSync.findUserFiles(containerPath); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
groupSync := make(syncDB)
|
||||
if err := groupSync.readFromHost(groupPath); err != nil {
|
||||
@@ -62,9 +59,6 @@ func SyncUids(containerName string, showOnly bool) error {
|
||||
if err := groupSync.checkConflicts(); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := groupSync.findGroupFiles(containerPath); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
passwdSync.log("passwd")
|
||||
groupSync.log("group")
|
||||
@@ -76,13 +70,18 @@ func SyncUids(containerName string, showOnly bool) error {
|
||||
wwlog.Info("uid/gid already synced")
|
||||
}
|
||||
} else {
|
||||
if err := passwdSync.findUserFiles(containerPath); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := groupSync.findGroupFiles(containerPath); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := passwdSync.chownUserFiles(); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := groupSync.chownGroupFiles(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := passwdSync.update(containerPasswdPath, passwdPath); err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -329,9 +328,6 @@ func (db syncDB) needsSync() bool {
|
||||
wwlog.Debug("sync required: %s is %v in host and %v in container", name, ids.HostID, ids.ContainerID)
|
||||
return true
|
||||
}
|
||||
if len(ids.ContainerFiles) > 0 {
|
||||
wwlog.Debug("sync required: %v files to update for %s", len(ids.ContainerFiles), name)
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
@@ -391,6 +387,7 @@ func (info *syncInfo) findFiles(containerPath string, byGid bool) error {
|
||||
var containerFiles []string
|
||||
if info.inHost() && !info.match() {
|
||||
if err := filepath.Walk(containerPath, func(filePath string, fileInfo fs.FileInfo, err error) error {
|
||||
wwlog.Debug("findFiles: %s", filePath)
|
||||
if stat, ok := fileInfo.Sys().(*syscall.Stat_t); ok {
|
||||
var id int
|
||||
if byGid {
|
||||
|
||||
Reference in New Issue
Block a user