intermediate garbage
This commit is contained in:
		
							parent
							
								
									e6db1892dc
								
							
						
					
					
						commit
						cf67d610dd
					
				| 
						 | 
				
			
			@ -332,8 +332,7 @@ func (c *Controller) initController() {
 | 
			
		|||
	if c.opConfig.EnablePostgresTeamCRD {
 | 
			
		||||
		c.loadPostgresTeams()
 | 
			
		||||
	} else {
 | 
			
		||||
		teamMap := make(teams.PostgresTeamMap, 0)
 | 
			
		||||
		c.pgTeamMap = &teamMap
 | 
			
		||||
		c.pgTeamMap.Reset()
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if c.opConfig.DebugLogging {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -15,7 +15,6 @@ import (
 | 
			
		|||
	acidv1 "github.com/zalando/postgres-operator/pkg/apis/acid.zalan.do/v1"
 | 
			
		||||
	"github.com/zalando/postgres-operator/pkg/cluster"
 | 
			
		||||
	"github.com/zalando/postgres-operator/pkg/spec"
 | 
			
		||||
	"github.com/zalando/postgres-operator/pkg/teams"
 | 
			
		||||
	"github.com/zalando/postgres-operator/pkg/util"
 | 
			
		||||
	"github.com/zalando/postgres-operator/pkg/util/config"
 | 
			
		||||
	"github.com/zalando/postgres-operator/pkg/util/k8sutil"
 | 
			
		||||
| 
						 | 
				
			
			@ -396,8 +395,7 @@ func (c *Controller) getInfrastructureRole(
 | 
			
		|||
 | 
			
		||||
func (c *Controller) loadPostgresTeams() {
 | 
			
		||||
	// reset team map
 | 
			
		||||
	teamMap := make(teams.PostgresTeamMap, 0)
 | 
			
		||||
	c.pgTeamMap = &teamMap
 | 
			
		||||
	c.pgTeamMap.Reset()
 | 
			
		||||
 | 
			
		||||
	pgTeams, err := c.KubeClient.PostgresTeamsGetter.PostgresTeams(c.opConfig.WatchedNamespace).List(context.TODO(), metav1.ListOptions{})
 | 
			
		||||
	if err != nil {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,9 +6,11 @@ import (
 | 
			
		|||
)
 | 
			
		||||
 | 
			
		||||
// PostgresTeamMap is the operator's internal representation of all PostgresTeam CRDs
 | 
			
		||||
type PostgresTeamMap map[string]postgresTeamMembership
 | 
			
		||||
type PostgresTeamMap map[string]*PostgresTeamMembership
 | 
			
		||||
 | 
			
		||||
type postgresTeamMembership struct {
 | 
			
		||||
var emptyTeamMap = make(PostgresTeamMap, 0)
 | 
			
		||||
 | 
			
		||||
type PostgresTeamMembership struct {
 | 
			
		||||
	AdditionalSuperuserTeams []string
 | 
			
		||||
	AdditionalTeams          []string
 | 
			
		||||
	AdditionalMembers        []string
 | 
			
		||||
| 
						 | 
				
			
			@ -94,6 +96,10 @@ func (ptm *PostgresTeamMap) GetAdditionalSuperuserTeams(team string, transitive
 | 
			
		|||
 | 
			
		||||
// Load function to import data from PostgresTeam CRD
 | 
			
		||||
func (ptm *PostgresTeamMap) Load(pgTeams *acidv1.PostgresTeamList) {
 | 
			
		||||
	if ptm == nil {
 | 
			
		||||
		ptm = &emptyTeamMap
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	superuserTeamSet := teamHashSet{}
 | 
			
		||||
	teamSet := teamHashSet{}
 | 
			
		||||
	teamMemberSet := teamHashSet{}
 | 
			
		||||
| 
						 | 
				
			
			@ -109,10 +115,17 @@ func (ptm *PostgresTeamMap) Load(pgTeams *acidv1.PostgresTeamList) {
 | 
			
		|||
	fetchTeams(&teamIDs, teamMemberSet)
 | 
			
		||||
 | 
			
		||||
	for teamID := range teamIDs {
 | 
			
		||||
		(*ptm)[teamID] = postgresTeamMembership{
 | 
			
		||||
		(*ptm)[teamID] = &PostgresTeamMembership{
 | 
			
		||||
			AdditionalSuperuserTeams: util.CoalesceStrArr(superuserTeamSet.toMap()[teamID], []string{}),
 | 
			
		||||
			AdditionalTeams:          util.CoalesceStrArr(teamSet.toMap()[teamID], []string{}),
 | 
			
		||||
			AdditionalMembers:        util.CoalesceStrArr(teamMemberSet.toMap()[teamID], []string{}),
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Reset a PostgresTeamMap
 | 
			
		||||
func (ptm *PostgresTeamMap) Reset() {
 | 
			
		||||
	if ptm != nil {
 | 
			
		||||
		*ptm = emptyTeamMap
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,6 +3,7 @@ package teams
 | 
			
		|||
import (
 | 
			
		||||
	"testing"
 | 
			
		||||
 | 
			
		||||
	"github.com/stretchr/testify/assert"
 | 
			
		||||
	acidv1 "github.com/zalando/postgres-operator/pkg/apis/acid.zalan.do/v1"
 | 
			
		||||
	"github.com/zalando/postgres-operator/pkg/util"
 | 
			
		||||
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
			
		||||
| 
						 | 
				
			
			@ -46,20 +47,7 @@ var (
 | 
			
		|||
			},
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// PostgresTeamMap is the operator's internal representation of all PostgresTeam CRDs
 | 
			
		||||
func TestLoadingPostgresTeamCRD(t *testing.T) {
 | 
			
		||||
	tests := []struct {
 | 
			
		||||
		name  string
 | 
			
		||||
		crd   acidv1.PostgresTeamList
 | 
			
		||||
		ptm   PostgresTeamMap
 | 
			
		||||
		error string
 | 
			
		||||
	}{
 | 
			
		||||
		{
 | 
			
		||||
			"Check that CRD is imported correctly into the internal format",
 | 
			
		||||
			pgTeamList,
 | 
			
		||||
			PostgresTeamMap{
 | 
			
		||||
	pgTeamMap = PostgresTeamMap{
 | 
			
		||||
		"teamA": {
 | 
			
		||||
			AdditionalSuperuserTeams: []string{"teamB", "team24x7"},
 | 
			
		||||
			AdditionalTeams:          []string{"teamC"},
 | 
			
		||||
| 
						 | 
				
			
			@ -85,7 +73,21 @@ func TestLoadingPostgresTeamCRD(t *testing.T) {
 | 
			
		|||
			AdditionalTeams:          []string{},
 | 
			
		||||
			AdditionalMembers:        []string{"batman"},
 | 
			
		||||
		},
 | 
			
		||||
			},
 | 
			
		||||
	}
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// TestLoadingPostgresTeamCRD PostgresTeamMap is the operator's internal representation of all PostgresTeam CRDs
 | 
			
		||||
func TestLoadingPostgresTeamCRD(t *testing.T) {
 | 
			
		||||
	tests := []struct {
 | 
			
		||||
		name  string
 | 
			
		||||
		crd   acidv1.PostgresTeamList
 | 
			
		||||
		ptm   PostgresTeamMap
 | 
			
		||||
		error string
 | 
			
		||||
	}{
 | 
			
		||||
		{
 | 
			
		||||
			"Check that CRD is imported correctly into the internal format",
 | 
			
		||||
			pgTeamList,
 | 
			
		||||
			pgTeamMap,
 | 
			
		||||
			"Mismatch between PostgresTeam CRD and internal map",
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -107,6 +109,14 @@ func TestLoadingPostgresTeamCRD(t *testing.T) {
 | 
			
		|||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// TestLoadingPostgresTeamCRD PostgresTeamMap is the operator's internal representation of all PostgresTeam CRDs
 | 
			
		||||
func TestResetPostgresTeamCRD(t *testing.T) {
 | 
			
		||||
	teamMap := &pgTeamMap
 | 
			
		||||
	teamMap.Reset()
 | 
			
		||||
 | 
			
		||||
	assert.Equal(t, teamMap, &PostgresTeamMap{})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// TestGetAdditionalTeams if returns teams with and without transitive dependencies
 | 
			
		||||
func TestGetAdditionalTeams(t *testing.T) {
 | 
			
		||||
	tests := []struct {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue