in frontend/pkg/frontend/frontend.go [1189:1223]
func getSubscriptionDifferences(oldSub, newSub *arm.Subscription) []string {
var messages []string
if oldSub.State != newSub.State {
messages = append(messages, fmt.Sprintf("Subscription state changed from %s to %s", oldSub.State, newSub.State))
}
if oldSub.Properties != nil && newSub.Properties != nil {
if oldSub.Properties.TenantId != nil && newSub.Properties.TenantId != nil &&
*oldSub.Properties.TenantId != *newSub.Properties.TenantId {
messages = append(messages, fmt.Sprintf("Subscription tenantId changed from %s to %s", *oldSub.Properties.TenantId, *newSub.Properties.TenantId))
}
if oldSub.Properties.RegisteredFeatures != nil && newSub.Properties.RegisteredFeatures != nil {
oldFeatures := featuresMap(oldSub.Properties.RegisteredFeatures)
newFeatures := featuresMap(newSub.Properties.RegisteredFeatures)
for featureName, oldState := range oldFeatures {
newState, exists := newFeatures[featureName]
if !exists {
messages = append(messages, fmt.Sprintf("Feature %s removed", featureName))
} else if oldState != newState {
messages = append(messages, fmt.Sprintf("Feature %s state changed from %s to %s", featureName, oldState, newState))
}
}
for featureName, newState := range newFeatures {
if _, exists := oldFeatures[featureName]; !exists {
messages = append(messages, fmt.Sprintf("Feature %s added with state %s", featureName, newState))
}
}
}
}
return messages
}