Load function to import data from PostgresTeam CRD
(pgTeams *acidv1.PostgresTeamList)
| 101 | |
| 102 | // Load function to import data from PostgresTeam CRD |
| 103 | func (ptm *PostgresTeamMap) Load(pgTeams *acidv1.PostgresTeamList) { |
| 104 | // reset the team map |
| 105 | *ptm = make(PostgresTeamMap, 0) |
| 106 | |
| 107 | superuserTeamSet := teamHashSet{} |
| 108 | teamSet := teamHashSet{} |
| 109 | teamMemberSet := teamHashSet{} |
| 110 | teamIDs := make(map[string]struct{}) |
| 111 | |
| 112 | for _, pgTeam := range pgTeams.Items { |
| 113 | superuserTeamSet.mergeCrdMap(pgTeam.Spec.AdditionalSuperuserTeams) |
| 114 | teamSet.mergeCrdMap(pgTeam.Spec.AdditionalTeams) |
| 115 | teamMemberSet.mergeCrdMap(pgTeam.Spec.AdditionalMembers) |
| 116 | } |
| 117 | fetchTeams(&teamIDs, superuserTeamSet) |
| 118 | fetchTeams(&teamIDs, teamSet) |
| 119 | fetchTeams(&teamIDs, teamMemberSet) |
| 120 | |
| 121 | for teamID := range teamIDs { |
| 122 | (*ptm)[teamID] = postgresTeamMembership{ |
| 123 | AdditionalSuperuserTeams: util.CoalesceStrArr(superuserTeamSet.toMap()[teamID], []string{}), |
| 124 | AdditionalTeams: util.CoalesceStrArr(teamSet.toMap()[teamID], []string{}), |
| 125 | AdditionalMembers: util.CoalesceStrArr(teamMemberSet.toMap()[teamID], []string{}), |
| 126 | } |
| 127 | } |
| 128 | } |