Skip to content

Commit

Permalink
Further renaming
Browse files Browse the repository at this point in the history
  • Loading branch information
kolodziejczak committed Jun 14, 2024
1 parent feb6cac commit 395e2a4
Showing 1 changed file with 29 additions and 29 deletions.
58 changes: 29 additions & 29 deletions apis/gateway/v2alpha1/apirule_conversion.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ func convertMap(m map[v1beta1.StatusCode]State) map[State]v1beta1.StatusCode {
}

// The 2 => 1 map is generated automatically based on 1 => 2 map
var beta2to1statusConversionMap = convertMap(beta1toV2alpha1StatusConversionMap)
var alpha1to1beta1statusConversionMap = convertMap(beta1toV2alpha1StatusConversionMap)

// Converts this ApiRule (v2alpha1) to the Hub version (v1beta1)
func (apiRuleV2Alpha1 *APIRule) ConvertTo(hub conversion.Hub) error {
Expand Down Expand Up @@ -70,7 +70,7 @@ func (apiRuleV2Alpha1 *APIRule) ConvertTo(hub conversion.Hub) error {
// Status
apiRuleBeta1.Status = v1beta1.APIRuleStatus{
APIRuleStatus: &v1beta1.APIRuleResourceStatus{
Code: beta2to1statusConversionMap[apiRuleV2Alpha1.Status.State],
Code: alpha1to1beta1statusConversionMap[apiRuleV2Alpha1.Status.State],
Description: apiRuleV2Alpha1.Status.Description,
},
LastProcessedTime: apiRuleV2Alpha1.Status.LastProcessedTime,
Expand All @@ -94,26 +94,26 @@ func (apiRuleV2Alpha1 *APIRule) ConvertTo(hub conversion.Hub) error {
apiRuleBeta1.Spec.Host = &strHost

apiRuleBeta1.Spec.Rules = []v1beta1.Rule{}
for _, ruleBeta2 := range apiRuleV2Alpha1.Spec.Rules {
for _, ruleV1Alpha2 := range apiRuleV2Alpha1.Spec.Rules {
ruleBeta1 := v1beta1.Rule{}
err = convertOverJson(ruleBeta2, &ruleBeta1)
err = convertOverJson(ruleV1Alpha2, &ruleBeta1)
if err != nil {
return err
}
// No Auth
if ruleBeta2.NoAuth != nil && *ruleBeta2.NoAuth {
if ruleV1Alpha2.NoAuth != nil && *ruleV1Alpha2.NoAuth {
ruleBeta1.AccessStrategies = append(ruleBeta1.AccessStrategies, &v1beta1.Authenticator{
Handler: &v1beta1.Handler{
Name: "no_auth",
},
})
}
// JWT
if ruleBeta2.Jwt != nil {
if ruleV1Alpha2.Jwt != nil {
ruleBeta1.AccessStrategies = append(ruleBeta1.AccessStrategies, &v1beta1.Authenticator{
Handler: &v1beta1.Handler{
Name: "jwt",
Config: &runtime.RawExtension{Object: ruleBeta2.Jwt},
Config: &runtime.RawExtension{Object: ruleV1Alpha2.Jwt},
},
})
}
Expand All @@ -127,66 +127,66 @@ func (apiRuleV2Alpha1 *APIRule) ConvertTo(hub conversion.Hub) error {
}

// Converts from the Hub version (v1beta1) into this ApiRule (v2alpha1)
func (apiRuleBeta2 *APIRule) ConvertFrom(hub conversion.Hub) error {
func (apiRuleV2Alpha1 *APIRule) ConvertFrom(hub conversion.Hub) error {
apiRuleBeta1 := hub.(*v1beta1.APIRule)

apiRuleBeta2.ObjectMeta = apiRuleBeta1.ObjectMeta
apiRuleV2Alpha1.ObjectMeta = apiRuleBeta1.ObjectMeta

err := convertOverJson(apiRuleBeta1.Spec.Rules, &apiRuleBeta2.Spec.Rules)
err := convertOverJson(apiRuleBeta1.Spec.Rules, &apiRuleV2Alpha1.Spec.Rules)
if err != nil {
return err
}
err = convertOverJson(apiRuleBeta1.Spec.Gateway, &apiRuleBeta2.Spec.Gateway)
err = convertOverJson(apiRuleBeta1.Spec.Gateway, &apiRuleV2Alpha1.Spec.Gateway)
if err != nil {
return err
}
err = convertOverJson(apiRuleBeta1.Spec.Service, &apiRuleBeta2.Spec.Service)
err = convertOverJson(apiRuleBeta1.Spec.Service, &apiRuleV2Alpha1.Spec.Service)
if err != nil {
return err
}
err = convertOverJson(apiRuleBeta1.Spec.Timeout, &apiRuleBeta2.Spec.Timeout)
err = convertOverJson(apiRuleBeta1.Spec.Timeout, &apiRuleV2Alpha1.Spec.Timeout)
if err != nil {
return err
}

if apiRuleBeta1.Status.APIRuleStatus != nil {
apiRuleBeta2.Status = APIRuleStatus{
apiRuleV2Alpha1.Status = APIRuleStatus{
State: beta1toV2alpha1StatusConversionMap[apiRuleBeta1.Status.APIRuleStatus.Code],
Description: apiRuleBeta1.Status.APIRuleStatus.Description,
LastProcessedTime: apiRuleBeta1.Status.LastProcessedTime,
}
}

apiRuleBeta2.Spec.Hosts = []*Host{new(Host)}
*apiRuleBeta2.Spec.Hosts[0] = Host(*apiRuleBeta1.Spec.Host)
apiRuleV2Alpha1.Spec.Hosts = []*Host{new(Host)}
*apiRuleV2Alpha1.Spec.Hosts[0] = Host(*apiRuleBeta1.Spec.Host)
if apiRuleBeta1.Spec.CorsPolicy != nil {
apiRuleBeta2.Spec.CorsPolicy = &CorsPolicy{}
apiRuleBeta2.Spec.CorsPolicy.AllowHeaders = apiRuleBeta1.Spec.CorsPolicy.AllowHeaders
apiRuleBeta2.Spec.CorsPolicy.AllowMethods = apiRuleBeta1.Spec.CorsPolicy.AllowMethods
apiRuleBeta2.Spec.CorsPolicy.AllowOrigins = StringMatch(apiRuleBeta1.Spec.CorsPolicy.AllowOrigins)
apiRuleBeta2.Spec.CorsPolicy.AllowCredentials = apiRuleBeta1.Spec.CorsPolicy.AllowCredentials
apiRuleBeta2.Spec.CorsPolicy.ExposeHeaders = apiRuleBeta1.Spec.CorsPolicy.ExposeHeaders
apiRuleV2Alpha1.Spec.CorsPolicy = &CorsPolicy{}
apiRuleV2Alpha1.Spec.CorsPolicy.AllowHeaders = apiRuleBeta1.Spec.CorsPolicy.AllowHeaders
apiRuleV2Alpha1.Spec.CorsPolicy.AllowMethods = apiRuleBeta1.Spec.CorsPolicy.AllowMethods
apiRuleV2Alpha1.Spec.CorsPolicy.AllowOrigins = StringMatch(apiRuleBeta1.Spec.CorsPolicy.AllowOrigins)
apiRuleV2Alpha1.Spec.CorsPolicy.AllowCredentials = apiRuleBeta1.Spec.CorsPolicy.AllowCredentials
apiRuleV2Alpha1.Spec.CorsPolicy.ExposeHeaders = apiRuleBeta1.Spec.CorsPolicy.ExposeHeaders

// metav1.Duration type for seconds is float64,
// however the Access-Control-Max-Age header is specified in seconds without decimals.
// In consequence, the conversion drops any values smaller than 1 second.
// https://fetch.spec.whatwg.org/#http-responses
if apiRuleBeta1.Spec.CorsPolicy.MaxAge != nil {
maxAge := uint64(apiRuleBeta1.Spec.CorsPolicy.MaxAge.Duration.Seconds())
apiRuleBeta2.Spec.CorsPolicy.MaxAge = &maxAge
apiRuleV2Alpha1.Spec.CorsPolicy.MaxAge = &maxAge
}
}

apiRuleBeta2.Spec.Rules = []Rule{}
apiRuleV2Alpha1.Spec.Rules = []Rule{}
for _, ruleBeta1 := range apiRuleBeta1.Spec.Rules {
ruleBeta2 := Rule{}
err = convertOverJson(ruleBeta1, &ruleBeta2)
ruleV1Alpha2 := Rule{}
err = convertOverJson(ruleBeta1, &ruleV1Alpha2)
if err != nil {
return err
}
for _, accessStrategy := range ruleBeta1.AccessStrategies {
if accessStrategy.Handler.Name == "no_auth" { // No Auth
ruleBeta2.NoAuth = ptr.To(true)
ruleV1Alpha2.NoAuth = ptr.To(true)
} else if accessStrategy.Handler.Name == "jwt" && accessStrategy.Config != nil { // JWT
var jwtConfig *v1beta1.JwtConfig
if accessStrategy.Config.Object != nil {
Expand All @@ -205,15 +205,15 @@ func (apiRuleBeta2 *APIRule) ConvertFrom(hub conversion.Hub) error {
return fmt.Errorf(v1beta1DeprecatedTemplate, apiRuleBeta1.Namespace, apiRuleBeta1.Name)
}
}
err = convertOverJson(jwtConfig, &ruleBeta2.Jwt)
err = convertOverJson(jwtConfig, &ruleV1Alpha2.Jwt)
if err != nil {
return err
}
} else {
return fmt.Errorf(v1beta1DeprecatedTemplate, apiRuleBeta1.Namespace, apiRuleBeta1.Name)
}
}
apiRuleBeta2.Spec.Rules = append(apiRuleBeta2.Spec.Rules, ruleBeta2)
apiRuleV2Alpha1.Spec.Rules = append(apiRuleV2Alpha1.Spec.Rules, ruleV1Alpha2)
}

return nil
Expand Down

0 comments on commit 395e2a4

Please sign in to comment.