Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
  • Loading branch information
piotrmiskiewicz committed Sep 23, 2024
1 parent e7f6f3a commit f4141b2
Show file tree
Hide file tree
Showing 5 changed files with 3 additions and 155 deletions.
19 changes: 1 addition & 18 deletions cmd/broker/deprovisioning_suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ import (
"github.com/google/uuid"
"github.com/kyma-project/control-plane/components/provisioner/pkg/gqlschema"
"github.com/kyma-project/kyma-environment-broker/internal"
"github.com/kyma-project/kyma-environment-broker/internal/avs"
"github.com/kyma-project/kyma-environment-broker/internal/edp"
"github.com/kyma-project/kyma-environment-broker/internal/event"
"github.com/kyma-project/kyma-environment-broker/internal/fixture"
Expand Down Expand Up @@ -86,22 +85,6 @@ func NewDeprovisioningSuite(t *testing.T) *DeprovisioningSuite {
eventBroker := event.NewPubSub(logs)
provisionerClient := provisioner.NewFakeClient()

server := avs.NewMockAvsServer(t)
mockServer := avs.FixMockAvsServer(server)
avsConfig := avs.Config{
OauthTokenEndpoint: fmt.Sprintf("%s/oauth/token", mockServer.URL),
ApiEndpoint: fmt.Sprintf("%s/api/v2/evaluationmetadata", mockServer.URL),
}
client, err := avs.NewClient(context.TODO(), avsConfig, logrus.New())
assert.NoError(t, err)
_, err = client.CreateEvaluation(&avs.BasicEvaluationCreateRequest{
Name: "fake-evaluation",
})
assert.NoError(t, err)
avsDel := avs.NewDelegator(client, avsConfig, db.Operations())
externalEvalAssistant := avs.NewExternalEvalAssistant(cfg.Avs)
internalEvalAssistant := avs.NewInternalEvalAssistant(cfg.Avs)

edpClient := fixEDPClient(t)

accountProvider := fixAccountProvider()
Expand All @@ -126,7 +109,7 @@ func NewDeprovisioningSuite(t *testing.T) *DeprovisioningSuite {
kebConfig.NewConfigMapConverter())

deprovisioningQueue := NewDeprovisioningProcessingQueue(ctx, workersAmount, deprovisionManager, cfg, db, eventBroker,
provisionerClient, avsDel, internalEvalAssistant, externalEvalAssistant,
provisionerClient,
edpClient, accountProvider, kubeconfig.NewFakeK8sClientProvider(fakeK8sSKRClient), fakeK8sSKRClient, configProvider, logs,
)

Expand Down
25 changes: 2 additions & 23 deletions cmd/broker/suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,13 @@ import (
hyperscalerautomock "github.com/kyma-project/kyma-environment-broker/common/hyperscaler/automock"
"github.com/kyma-project/kyma-environment-broker/common/orchestration"
"github.com/kyma-project/kyma-environment-broker/internal"
"github.com/kyma-project/kyma-environment-broker/internal/avs"
"github.com/kyma-project/kyma-environment-broker/internal/broker"
"github.com/kyma-project/kyma-environment-broker/internal/edp"
"github.com/kyma-project/kyma-environment-broker/internal/event"
"github.com/kyma-project/kyma-environment-broker/internal/notification"
kebOrchestration "github.com/kyma-project/kyma-environment-broker/internal/orchestration"
"github.com/kyma-project/kyma-environment-broker/internal/process"
"github.com/kyma-project/kyma-environment-broker/internal/process/input"
"github.com/kyma-project/kyma-environment-broker/internal/process/provisioning"
"github.com/kyma-project/kyma-environment-broker/internal/process/upgrade_cluster"
"github.com/kyma-project/kyma-environment-broker/internal/provisioner"
kebRuntime "github.com/kyma-project/kyma-environment-broker/internal/runtime"
Expand Down Expand Up @@ -149,9 +147,6 @@ func NewOrchestrationSuite(t *testing.T, additionalKymaVersions []string) *Orche

eventBroker := event.NewPubSub(logs)

avsClient, _ := avs.NewClient(ctx, avs.Config{}, logs)
avsDel := avs.NewDelegator(avsClient, avs.Config{}, db.Operations())
upgradeEvaluationManager := avs.NewEvaluationManager(avsDel, avs.Config{})
runtimeLister := kebOrchestration.NewRuntimeLister(db.Instances(), db.Operations(), kebRuntime.NewConverter(defaultRegion), logs)
runtimeResolver := orchestration.NewGardenerRuntimeResolver(gardenerClient, gardenerNamespace, runtimeLister, logs)

Expand All @@ -162,7 +157,7 @@ func NewOrchestrationSuite(t *testing.T, additionalKymaVersions []string) *Orche
Retry: 2 * time.Millisecond,
StatusCheck: 20 * time.Millisecond,
UpgradeClusterTimeout: 4 * time.Second,
}, 250*time.Millisecond, runtimeResolver, upgradeEvaluationManager, notificationBundleBuilder, logs, cli, cfg, 1000)
}, 250*time.Millisecond, runtimeResolver, notificationBundleBuilder, logs, cli, cfg, 1000)

clusterQueue.SpeedUp(1000)

Expand Down Expand Up @@ -519,7 +514,6 @@ type ProvisioningSuite struct {
storage storage.BrokerStorage

t *testing.T
avsServer *avs.MockAvsServer
k8sKcpCli client.Client
}

Expand Down Expand Up @@ -577,19 +571,7 @@ func NewProvisioningSuite(t *testing.T, multiZoneCluster bool, controlPlaneFailu
}, map[string]string{"cf-eu10": "europe"}, cfg.FreemiumProviders, oidcDefaults, useSmallerMachineTypes)
require.NoError(t, err)

server := avs.NewMockAvsServer(t)
mockServer := avs.FixMockAvsServer(server)
avsConfig := avs.Config{
OauthTokenEndpoint: fmt.Sprintf("%s/oauth/token", mockServer.URL),
ApiEndpoint: fmt.Sprintf("%s/api/v2/evaluationmetadata", mockServer.URL),
}

client, err := avs.NewClient(context.TODO(), avsConfig, logrus.New())
assert.NoError(t, err)
avsDel := avs.NewDelegator(client, avsConfig, db.Operations())
externalEvalAssistant := avs.NewExternalEvalAssistant(cfg.Avs)
internalEvalAssistant := avs.NewInternalEvalAssistant(cfg.Avs)
externalEvalCreator := provisioning.NewExternalEvalCreator(avsDel, cfg.Avs.Disabled, externalEvalAssistant)

edpClient := edp.NewFakeClient()

Expand All @@ -598,8 +580,7 @@ func NewProvisioningSuite(t *testing.T, multiZoneCluster bool, controlPlaneFailu
eventBroker := event.NewPubSub(logs)

provisionManager := process.NewStagedManager(db.Operations(), eventBroker, cfg.OperationTimeout, cfg.Provisioning, logs.WithField("provisioning", "manager"))
provisioningQueue := NewProvisioningProcessingQueue(ctx, provisionManager, workersAmount, cfg, db, provisionerClient, inputFactory, avsDel,
internalEvalAssistant, externalEvalCreator, edpClient, accountProvider,
provisioningQueue := NewProvisioningProcessingQueue(ctx, provisionManager, workersAmount, cfg, db, provisionerClient, inputFactory, edpClient, accountProvider,
kubeconfig.NewFakeK8sClientProvider(cli), cli, defaultOIDCValues(), logs)

provisioningQueue.SpeedUp(10000)
Expand All @@ -610,7 +591,6 @@ func NewProvisioningSuite(t *testing.T, multiZoneCluster bool, controlPlaneFailu
provisioningManager: provisionManager,
provisioningQueue: provisioningQueue,
storage: db,
avsServer: server,
k8sKcpCli: cli,

t: t,
Expand Down Expand Up @@ -957,7 +937,6 @@ func fixConfig() *Config {
},
TrialRegionMappingFilePath: "testdata/trial-regions.yaml",

Avs: avs.Config{},
Notification: notification.Config{
Url: "http://host:8080/",
},
Expand Down
19 changes: 0 additions & 19 deletions internal/error/errors_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import (
"net/http"
"testing"

"github.com/kyma-project/kyma-environment-broker/internal/avs"
"github.com/kyma-project/kyma-environment-broker/internal/edp"
kebError "github.com/kyma-project/kyma-environment-broker/internal/error"
"github.com/kyma-project/kyma-environment-broker/internal/storage/dberr"
Expand All @@ -23,9 +22,6 @@ func TestLastError(t *testing.T) {
edpConfErr := edp.NewEDPConflictError("id", fmt.Sprintf("Resource %s already exists", "id"))
expectEdpConfMsg := "Resource id already exists"

avsErr := fmt.Errorf("something: %w", avs.NewAvsError("avs server returned %d status code", http.StatusUnauthorized))
expectAvsMsg := fmt.Sprintf("something: avs server returned %d status code", http.StatusUnauthorized)

dbErr := fmt.Errorf("something: %w", dberr.NotFound("Some NotFound apperror, %s", "Some pkg err"))
expectDbErr := fmt.Sprintf("something: Some NotFound apperror, Some pkg err")

Expand All @@ -35,7 +31,6 @@ func TestLastError(t *testing.T) {
// when
edpLastErr := kebError.ReasonForError(edpErr)
edpConfLastErr := kebError.ReasonForError(edpConfErr)
avsLastErr := kebError.ReasonForError(avsErr)
dbLastErr := kebError.ReasonForError(dbErr)
timeoutLastErr := kebError.ReasonForError(timeoutErr)

Expand All @@ -49,11 +44,6 @@ func TestLastError(t *testing.T) {
assert.Equal(t, expectEdpConfMsg, edpConfLastErr.Error())
assert.True(t, edp.IsConflictError(edpConfErr))

assert.Equal(t, kebError.ErrHttpStatusCode, avsLastErr.Reason())
assert.Equal(t, kebError.ErrAVS, avsLastErr.Component())
assert.Equal(t, expectAvsMsg, avsLastErr.Error())
assert.False(t, edp.IsConflictError(avsErr))

assert.Equal(t, dberr.ErrDBNotFound, dbLastErr.Reason())
assert.Equal(t, kebError.ErrDB, dbLastErr.Component())
assert.Equal(t, expectDbErr, dbLastErr.Error())
Expand All @@ -74,15 +64,11 @@ func TestTemporaryErrorToLastError(t *testing.T) {
tempErr := fmt.Errorf("something else: %w", kebError.WrapNewTemporaryError(fmt.Errorf("something: %w", err)))
expectMsg := fmt.Sprintf("something else: something: Got status %d", 502)

avsTempErr := kebError.WrapNewTemporaryError(avs.NewAvsError("avs server returned %d status code", 503))
expectAvsMsg := fmt.Sprintf("avs server returned %d status code", 503)

edpTempErr := kebError.WrapNewTemporaryError(edp.NewEDPOtherError("id", http.StatusRequestTimeout, "EDP server returns failed status %s", "501"))
expectEdpMsg := fmt.Sprintf("EDP server returns failed status %s", "501")

// when
lastErr := kebError.ReasonForError(tempErr)
avsLastErr := kebError.ReasonForError(avsTempErr)
edpLastErr := kebError.ReasonForError(edpTempErr)

// then
Expand All @@ -91,11 +77,6 @@ func TestTemporaryErrorToLastError(t *testing.T) {
assert.Equal(t, expectMsg, lastErr.Error())
assert.True(t, kebError.IsTemporaryError(tempErr))

assert.Equal(t, kebError.ErrHttpStatusCode, avsLastErr.Reason())
assert.Equal(t, kebError.ErrAVS, avsLastErr.Component())
assert.Equal(t, expectAvsMsg, avsLastErr.Error())
assert.True(t, kebError.IsTemporaryError(avsTempErr))

assert.Equal(t, edp.ErrEDPTimeout, edpLastErr.Reason())
assert.Equal(t, kebError.ErrEDP, edpLastErr.Component())
assert.Equal(t, expectEdpMsg, edpLastErr.Error())
Expand Down
1 change: 0 additions & 1 deletion internal/process/provisioning/initialisation_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import (
"time"

"github.com/kyma-project/kyma-environment-broker/internal"
"github.com/kyma-project/kyma-environment-broker/internal/avs"
"github.com/kyma-project/kyma-environment-broker/internal/broker"
"github.com/kyma-project/kyma-environment-broker/internal/fixture"
automock2 "github.com/kyma-project/kyma-environment-broker/internal/process/input/automock"
Expand Down
94 changes: 0 additions & 94 deletions internal/process/upgrade_cluster/initialisation_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import (
"github.com/kyma-project/kyma-environment-broker/internal/process/upgrade_cluster/automock"

"github.com/kyma-project/control-plane/components/provisioner/pkg/gqlschema"
"github.com/kyma-project/kyma-environment-broker/internal/avs"
"github.com/kyma-project/kyma-environment-broker/internal/fixture"
"github.com/kyma-project/kyma-environment-broker/internal/notification"
notificationAutomock "github.com/kyma-project/kyma-environment-broker/internal/notification/mocks"
Expand Down Expand Up @@ -45,99 +44,6 @@ type fixHyperscalerInputProvider interface {
Defaults() *gqlschema.ClusterConfigInput
}

func createMonitors(t *testing.T, client *avs.Client, internalStatus string, externalStatus string) internal.AvsLifecycleData {
// monitors
var (
operationInternalId int64
operationExternalId int64
)

// internal
inMonitor, err := client.CreateEvaluation(&avs.BasicEvaluationCreateRequest{
Name: "internal monitor",
})
require.NoError(t, err)
operationInternalId = inMonitor.Id

if avs.ValidStatus(internalStatus) {
_, err = client.SetStatus(inMonitor.Id, internalStatus)
require.NoError(t, err)
}

// external
exMonitor, err := client.CreateEvaluation(&avs.BasicEvaluationCreateRequest{
Name: "external monitor",
})
require.NoError(t, err)
operationExternalId = exMonitor.Id

if avs.ValidStatus(externalStatus) {
_, err = client.SetStatus(exMonitor.Id, externalStatus)
require.NoError(t, err)
}

// return AvsLifecycleData
avsData := internal.AvsLifecycleData{
AvsEvaluationInternalId: operationInternalId,
AVSEvaluationExternalId: operationExternalId,
AvsInternalEvaluationStatus: internal.AvsEvaluationStatus{
Current: internalStatus,
Original: "",
},
AvsExternalEvaluationStatus: internal.AvsEvaluationStatus{
Current: externalStatus,
Original: "",
},
AVSInternalEvaluationDeleted: false,
AVSExternalEvaluationDeleted: false,
}

return avsData
}

func createEvalManagerWithValidity(t *testing.T, storage storage.BrokerStorage, log *logrus.Logger, valid bool) (*avs.EvaluationManager, *avs.Client) {
server := avs.NewMockAvsServer(t)
mockServer := avs.FixMockAvsServer(server)
client, err := avs.NewClient(context.TODO(), avs.Config{
OauthTokenEndpoint: fmt.Sprintf("%s/oauth/token", mockServer.URL),
ApiEndpoint: fmt.Sprintf("%s/api/v2/evaluationmetadata", mockServer.URL),
}, logrus.New())
require.NoError(t, err)

if !valid {
client, err = avs.NewClient(context.TODO(), avs.Config{}, logrus.New())
}
require.NoError(t, err)

avsDel := avs.NewDelegator(client, avs.Config{}, storage.Operations())
upgradeEvalManager := avs.NewEvaluationManager(avsDel, avs.Config{})

return upgradeEvalManager, client
}

func createEvalManager(t *testing.T, storage storage.BrokerStorage, log *logrus.Logger) (*avs.EvaluationManager, *avs.Client) {
return createEvalManagerWithValidity(t, storage, log, true)
}

func createEvalManagerWithMaintenanceModeConfig(t *testing.T, storage storage.BrokerStorage, maintenanceModeDisabled bool,
maintenanceModeAlwaysDisabledGAIDs []string) (*avs.EvaluationManager, *avs.Client) {
server := avs.NewMockAvsServer(t)
mockServer := avs.FixMockAvsServer(server)
client, err := avs.NewClient(context.TODO(), avs.Config{
OauthTokenEndpoint: fmt.Sprintf("%s/oauth/token", mockServer.URL),
ApiEndpoint: fmt.Sprintf("%s/api/v2/evaluationmetadata", mockServer.URL),
}, logrus.New())
require.NoError(t, err)

avsDel := avs.NewDelegator(client, avs.Config{}, storage.Operations())
upgradeEvalManager := avs.NewEvaluationManager(avsDel, avs.Config{
MaintenanceModeDuringUpgradeDisabled: maintenanceModeDisabled,
MaintenanceModeDuringUpgradeAlwaysDisabledGAIDs: maintenanceModeAlwaysDisabledGAIDs,
})

return upgradeEvalManager, client
}

func TestInitialisationStep_Run(t *testing.T) {
t.Run("should mark operation as Succeeded when upgrade was successful", func(t *testing.T) {
// given
Expand Down

0 comments on commit f4141b2

Please sign in to comment.