Skip to content

Commit 6ea8ccf

Browse files
Allow process-only refresh for unverified k8s domains
1 parent 991bd9c commit 6ea8ccf

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

server/controller/recorder/domain.go

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,11 @@ func (d *domain) tryRefresh(cloudData cloudmodel.Resource) error {
123123
d.updateStateInfo(cloudData)
124124

125125
if err := d.shouldRefresh(cloudData); err != nil {
126+
if err == DataNotVerifiedError &&
127+
len(cloudData.Processes) > 0 &&
128+
d.metadata.GetDomainInfo().Type == common.KUBERNETES {
129+
return d.tryRefreshProcessOnly(cloudData)
130+
}
126131
return err
127132
}
128133

@@ -141,6 +146,41 @@ func (d *domain) tryRefresh(cloudData cloudmodel.Resource) error {
141146
}
142147
}
143148

149+
func (d *domain) tryRefreshProcessOnly(cloudData cloudmodel.Resource) error {
150+
select {
151+
case <-d.cache.RefreshSignal:
152+
d.cache.IncrementSequence()
153+
d.cache.SetLogLevel(logging.INFO, cache.RefreshSignalCallerDomain)
154+
155+
d.refreshProcessOnly(cloudData)
156+
157+
d.cache.ResetRefreshSignal(cache.RefreshSignalCallerDomain)
158+
return nil
159+
default:
160+
log.Info("domain refresh is running, does nothing", d.metadata.LogPrefixes)
161+
return RefreshConflictError
162+
}
163+
}
164+
165+
func (d *domain) refreshProcessOnly(cloudData cloudmodel.Resource) {
166+
log.Info("domain process-only refresh started", d.metadata.LogPrefixes)
167+
168+
// for process
169+
d.cache.RefreshVTaps()
170+
171+
processUpdater := updater.NewProcess(d.cache, cloudData.Processes).RegisterListener(
172+
listener.NewProcess(d.cache),
173+
)
174+
updaters := []updater.ResourceUpdater{processUpdater}
175+
d.executeUpdaters(updaters)
176+
d.notifyOnResourceChanged(updaters)
177+
d.pubsub.PublishChange(d.msgMetadata)
178+
179+
d.updateSyncedAt(cloudData.SyncAt)
180+
181+
log.Info("domain process-only refresh completed", d.metadata.LogPrefixes)
182+
}
183+
144184
func (d *domain) shouldRefresh(cloudData cloudmodel.Resource) error {
145185
if cloudData.Verified {
146186
if (!slices.Contains(rcommon.UNCHECK_NETWORK_DOMAINS, d.metadata.GetDomainInfo().Type) && len(cloudData.Networks) == 0) || len(cloudData.VInterfaces) == 0 {

0 commit comments

Comments
 (0)