mirror of
https://github.com/portainer/portainer.git
synced 2025-07-22 23:09:41 +02:00
* refactor(tags): replace tags with tag ids * refactor(tags): revert tags to be strings and add tagids * refactor(tags): enable search by tag in home view * refactor(tags): show endpoint tags * refactor(endpoints): expect tagIds on create payload * refactor(endpoints): expect tagIds on update payload * refactor(endpoints): replace TagIds to TagIDs * refactor(endpoints): set endpoint group to get TagIDs * refactor(endpoints): refactor tag-selector to receive tag-ids * refactor(endpoints): show tags in multi-endpoint-selector * chore(tags): revert reformat * refactor(endpoints): remove unneeded bind * refactor(endpoints): change param tags to tagids in endpoint create * refactor(endpoints): remove console.log * refactor(tags): remove deleted tag from endpoint and endpoint group * fix(endpoints): show loading label while loading tags * chore(go): remove obsolete import labels * chore(db): add db version comment * fix(db): add tag service to migrator * refactor(db): add error checks in migrator * style(db): sort props in alphabetical order * style(tags): fix typo Co-Authored-By: Anthony Lapenna <anthony.lapenna@portainer.io> * refactor(endpoints): replace tagsMap with tag string representation * refactor(tags): rewrite tag delete to be more readable * refactor(home): rearange code to match former style * refactor(tags): guard against missing model in tag-selector * refactor(tags): rename vars in tag_delete * refactor(tags): allow any authenticated user to fetch tag list * refactor(endpoints): replace controller function with class * refactor(endpoints): replace function with helper * refactor(endpoints): replace controller with class * refactor(tags): revert tags-selector to use 1 way bindings * refactor(endpoints): load empty tag array instead of nil * refactor(endpoints): revert default tag ids * refactor(endpoints): use function in place * refactor(tags): use lodash * style(tags): use parens in arrow functions * fix(tags): remove tag from tag model Co-authored-by: Anthony Lapenna <anthony.lapenna@portainer.io>
57 lines
1.3 KiB
Go
57 lines
1.3 KiB
Go
package migrator
|
|
|
|
import "github.com/portainer/portainer/api"
|
|
|
|
func (m *Migrator) updateEndointsAndEndpointsGroupsToDBVersion23() error {
|
|
tags, err := m.tagService.Tags()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
tagsNameMap := make(map[string]portainer.TagID)
|
|
for _, tag := range tags {
|
|
tagsNameMap[tag.Name] = tag.ID
|
|
}
|
|
|
|
endpoints, err := m.endpointService.Endpoints()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
for _, endpoint := range endpoints {
|
|
endpointTags := make([]portainer.TagID, 0)
|
|
for _, tagName := range endpoint.Tags {
|
|
tagID, ok := tagsNameMap[tagName]
|
|
if ok {
|
|
endpointTags = append(endpointTags, tagID)
|
|
}
|
|
}
|
|
endpoint.TagIDs = endpointTags
|
|
err = m.endpointService.UpdateEndpoint(endpoint.ID, &endpoint)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
endpointGroups, err := m.endpointGroupService.EndpointGroups()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
for _, endpointGroup := range endpointGroups {
|
|
endpointGroupTags := make([]portainer.TagID, 0)
|
|
for _, tagName := range endpointGroup.Tags {
|
|
tagID, ok := tagsNameMap[tagName]
|
|
if ok {
|
|
endpointGroupTags = append(endpointGroupTags, tagID)
|
|
}
|
|
}
|
|
endpointGroup.TagIDs = endpointGroupTags
|
|
err = m.endpointGroupService.UpdateEndpointGroup(endpointGroup.ID, &endpointGroup)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
return nil
|
|
}
|