Skip to content

Commit

Permalink
Corrected Region for sap-converged-plan Update Operation (#865)
Browse files Browse the repository at this point in the history
* Debug

* Update Platform Region Parameter
  • Loading branch information
ralikio authored Jun 19, 2024
1 parent 1f817c4 commit 4923330
Show file tree
Hide file tree
Showing 2 changed files with 84 additions and 1 deletion.
82 changes: 82 additions & 0 deletions cmd/broker/update_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,88 @@ func TestUpdateFailedInstance(t *testing.T) {
assert.Equal(t, "Unable to process an update of a failed instance", errResponse.Description)
}

func TestUpdate_SapConvergedCloud(t *testing.T) {
// given
suite := NewBrokerSuiteTest(t)
defer suite.TearDown()
iid := uuid.New().String()

resp := suite.CallAPI("PUT", fmt.Sprintf("oauth/cf-eu20-staging/v2/service_instances/%s?accepts_incomplete=true&plan_id=03b812ac-c991-4528-b5bd-08b303523a63&service_id=47c9dcbf-ff30-448e-ab36-d3bad66ba281", iid),
`{
"service_id": "47c9dcbf-ff30-448e-ab36-d3bad66ba281",
"plan_id": "03b812ac-c991-4528-b5bd-08b303523a63",
"context": {
"sm_operator_credentials": {
"clientid": "cid",
"clientsecret": "cs",
"url": "url",
"sm_url": "sm_url"
},
"globalaccount_id": "g-account-id",
"subaccount_id": "sub-id",
"user_id": "[email protected]"
},
"parameters": {
"name": "testing-cluster",
"oidc": {
"clientID": "id-initial",
"signingAlgs": ["PS512"],
"issuerURL": "https://issuer.url.com"
},
"region": "eu-de-1"
}
}`)
opID := suite.DecodeOperationID(resp)
suite.processProvisioningByOperationID(opID)

// when
// OSB update:
resp = suite.CallAPI("PATCH", fmt.Sprintf("oauth/cf-eu20-staging/v2/service_instances/%s?accepts_incomplete=true", iid),
`{
"service_id": "47c9dcbf-ff30-448e-ab36-d3bad66ba281",
"plan_id": "03b812ac-c991-4528-b5bd-08b303523a63",
"context": {
"globalaccount_id": "g-account-id",
"user_id": "[email protected]"
},
"parameters": {
"oidc": {
"clientID": "id-ooo",
"signingAlgs": ["RS256"],
"issuerURL": "https://issuer.url.com"
}
}
}`)
assert.Equal(t, http.StatusAccepted, resp.StatusCode)
upgradeOperationID := suite.DecodeOperationID(resp)

suite.FinishUpdatingOperationByProvisioner(upgradeOperationID)

suite.WaitForOperationState(upgradeOperationID, domain.Succeeded)

disabled := false
suite.AssertShootUpgrade(upgradeOperationID, gqlschema.UpgradeShootInput{
GardenerConfig: &gqlschema.GardenerUpgradeInput{
OidcConfig: &gqlschema.OIDCConfigInput{
ClientID: "id-ooo",
GroupsClaim: "groups",
IssuerURL: "https://issuer.url.com",
SigningAlgs: []string{"RS256"},
UsernameClaim: "sub",
UsernamePrefix: "-",
},
ShootNetworkingFilterDisabled: &disabled,
},
Administrators: []string{"[email protected]"},
})
suite.AssertKymaResourceExists(opID)
suite.AssertKymaLabelsExist(opID, map[string]string{
"kyma-project.io/region": "eu-de-1",
"kyma-project.io/platform-region": "cf-eu20-staging",
})
}

func TestUpdateDeprovisioningInstance(t *testing.T) {
// given
suite := NewBrokerSuiteTest(t)
Expand Down
3 changes: 2 additions & 1 deletion internal/broker/instance_update.go
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@ func (b *UpdateEndpoint) Update(_ context.Context, instanceID string, details do

func (b *UpdateEndpoint) validateWithJsonSchemaValidator(details domain.UpdateDetails, instance *internal.Instance) error {
if len(details.RawParameters) > 0 {
planValidator, err := b.getJsonSchemaValidator(instance.Provider, instance.ServicePlanID, instance.ProviderRegion)
planValidator, err := b.getJsonSchemaValidator(instance.Provider, instance.ServicePlanID, instance.Parameters.PlatformRegion)
if err != nil {
return fmt.Errorf("while creating plan validator: %w", err)
}
Expand Down Expand Up @@ -387,6 +387,7 @@ func (b *UpdateEndpoint) isKyma2(instance *internal.Instance) (bool, string, err

func (b *UpdateEndpoint) getJsonSchemaValidator(provider internal.CloudProvider, planID string, platformRegion string) (JSONSchemaValidator, error) {
// shootAndSeedSameRegion is never enabled for update
b.log.Printf("region is: %s", platformRegion)
plans := Plans(b.plansConfig, provider, b.config.IncludeAdditionalParamsInSchema, euaccess.IsEURestrictedAccess(platformRegion), b.config.UseSmallerMachineTypes, false, b.convergedCloudRegionsProvider.GetRegions(platformRegion))
plan := plans[planID]
schema := string(Marshal(plan.Schemas.Instance.Update.Parameters))
Expand Down

0 comments on commit 4923330

Please sign in to comment.