layer1: derive namespace phases step 10
This commit is contained in:
@@ -152,6 +152,7 @@ func (m *inMemoryNamespaceManager) MarkPartState(namespace string, part string,
|
||||
state.UpdatedAt = time.Now().UTC()
|
||||
}
|
||||
record.RegisteredParts[part] = state
|
||||
record.Phase = deriveNamespacePhase(record)
|
||||
record.UpdatedAt = state.UpdatedAt
|
||||
m.records[namespace] = record
|
||||
return record.Clone(), true
|
||||
@@ -166,4 +167,30 @@ func (m *inMemoryNamespaceManager) Remove(name string) bool {
|
||||
}
|
||||
delete(m.records, name)
|
||||
return true
|
||||
}
|
||||
|
||||
func deriveNamespacePhase(record NamespaceRecord) NamespacePhase {
|
||||
if len(record.RegisteredParts) == 0 {
|
||||
return record.Phase
|
||||
}
|
||||
|
||||
hasRegistering := false
|
||||
for _, part := range record.RegisteredParts {
|
||||
switch part.State {
|
||||
case NamespacePartStateFailed:
|
||||
return NamespacePhaseFailed
|
||||
case NamespacePartStateRegistering:
|
||||
hasRegistering = true
|
||||
case NamespacePartStateActive:
|
||||
continue
|
||||
default:
|
||||
hasRegistering = true
|
||||
}
|
||||
}
|
||||
|
||||
if hasRegistering {
|
||||
return NamespacePhaseRegistering
|
||||
}
|
||||
|
||||
return NamespacePhaseActive
|
||||
}
|
||||
Reference in New Issue
Block a user