in pkg/client/unit.go [293:336]
func (u *Unit) updateState(
exp UnitState,
logLevel UnitLogLevel,
expFeaturesIdx uint64,
expFeatures *proto.Features,
cfg *proto.UnitExpectedConfig,
cfgIdx uint64,
expAPM *proto.APMConfig) Trigger {
var triggers Trigger
u.expectedStateMu.Lock()
defer u.expectedStateMu.Unlock()
if u.expectedState != exp {
u.expectedState = exp
triggers |= TriggeredStateChange
}
if u.logLevel != logLevel {
u.logLevel = logLevel
triggers |= TriggeredLogLevelChange
}
if u.featuresIdx != expFeaturesIdx {
u.featuresIdx = expFeaturesIdx
if expFeatures != nil &&
!gproto.Equal(u.features, expFeatures) {
u.features = expFeatures
triggers |= TriggeredFeatureChange
}
}
if u.configIdx != cfgIdx {
u.configIdx = cfgIdx
u.config = cfg
triggers |= TriggeredConfigChange
}
if !gproto.Equal(u.apm, expAPM) {
u.apm = expAPM
triggers |= TriggeredAPMChange
}
return triggers
}