mirror of https://github.com/portainer/portainer
26 lines
750 B
Go
26 lines
750 B
Go
package portainer
|
|
|
|
// EndpointRelatedEdgeStacks returns a list of Edge stacks related to this Endpoint
|
|
func EndpointRelatedEdgeStacks(endpoint *Endpoint, endpointGroup *EndpointGroup, edgeGroups []EdgeGroup, edgeStacks []EdgeStack) []EdgeStackID {
|
|
relatedEdgeGroupsSet := map[EdgeGroupID]bool{}
|
|
|
|
for _, edgeGroup := range edgeGroups {
|
|
if edgeGroupRelatedToEndpoint(&edgeGroup, endpoint, endpointGroup) {
|
|
relatedEdgeGroupsSet[edgeGroup.ID] = true
|
|
}
|
|
}
|
|
|
|
relatedEdgeStacks := []EdgeStackID{}
|
|
for _, edgeStack := range edgeStacks {
|
|
for _, edgeGroupID := range edgeStack.EdgeGroups {
|
|
if relatedEdgeGroupsSet[edgeGroupID] {
|
|
relatedEdgeStacks = append(relatedEdgeStacks, edgeStack.ID)
|
|
break
|
|
}
|
|
}
|
|
}
|
|
|
|
return relatedEdgeStacks
|
|
|
|
}
|