func autoConvert_v1_OAuthClient_To_api_OAuthClient(in *OAuthClient, out *api.OAuthClient, s conversion.Scope) error { if err := pkg_api.Convert_unversioned_TypeMeta_To_unversioned_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil { return err } if err := api_v1.Convert_v1_ObjectMeta_To_api_ObjectMeta(&in.ObjectMeta, &out.ObjectMeta, s); err != nil { return err } out.Secret = in.Secret out.AdditionalSecrets = in.AdditionalSecrets out.RespondWithChallenges = in.RespondWithChallenges out.RedirectURIs = in.RedirectURIs out.GrantMethod = api.GrantHandlerType(in.GrantMethod) if in.ScopeRestrictions != nil { in, out := &in.ScopeRestrictions, &out.ScopeRestrictions *out = make([]api.ScopeRestriction, len(*in)) for i := range *in { if err := Convert_v1_ScopeRestriction_To_api_ScopeRestriction(&(*in)[i], &(*out)[i], s); err != nil { return err } } } else { out.ScopeRestrictions = nil } return nil }
func autoConvert_v1_OAuthClient_To_api_OAuthClient(in *OAuthClient, out *api.OAuthClient, s conversion.Scope) error { if err := api_v1.Convert_v1_ObjectMeta_To_api_ObjectMeta(&in.ObjectMeta, &out.ObjectMeta, s); err != nil { return err } out.Secret = in.Secret out.AdditionalSecrets = *(*[]string)(unsafe.Pointer(&in.AdditionalSecrets)) out.RespondWithChallenges = in.RespondWithChallenges out.RedirectURIs = *(*[]string)(unsafe.Pointer(&in.RedirectURIs)) out.GrantMethod = api.GrantHandlerType(in.GrantMethod) out.ScopeRestrictions = *(*[]api.ScopeRestriction)(unsafe.Pointer(&in.ScopeRestrictions)) return nil }
func ensureOAuthClient(client oauthapi.OAuthClient, clientRegistry clientregistry.Registry, preserveExistingRedirects bool) error { ctx := kapi.NewContext() _, err := clientRegistry.CreateClient(ctx, &client) if err == nil || !kerrs.IsAlreadyExists(err) { return err } return unversioned.RetryOnConflict(unversioned.DefaultRetry, func() error { existing, err := clientRegistry.GetClient(ctx, client.Name) if err != nil { return err } // Ensure the correct challenge setting existing.RespondWithChallenges = client.RespondWithChallenges // Preserve an existing client secret if len(existing.Secret) == 0 { existing.Secret = client.Secret } // Preserve redirects for clients other than the CLI client // The CLI client doesn't care about the redirect URL, just the token or error fragment if preserveExistingRedirects { // Add in any redirects from the existing one // This preserves any additional customized redirects in the default clients redirects := sets.NewString(client.RedirectURIs...) for _, redirect := range existing.RedirectURIs { if !redirects.Has(redirect) { client.RedirectURIs = append(client.RedirectURIs, redirect) redirects.Insert(redirect) } } } existing.RedirectURIs = client.RedirectURIs // If the GrantMethod is present, keep it for compatibility // If it is empty, assign the requested strategy. if len(existing.GrantMethod) == 0 { existing.GrantMethod = client.GrantMethod } _, err = clientRegistry.UpdateClient(ctx, existing) return err }) }
func autoConvert_v1_OAuthClient_To_api_OAuthClient(in *OAuthClient, out *oauth_api.OAuthClient, s conversion.Scope) error { if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found { defaulting.(func(*OAuthClient))(in) } if err := api.Convert_unversioned_TypeMeta_To_unversioned_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil { return err } // TODO: Inefficient conversion - can we improve it? if err := s.Convert(&in.ObjectMeta, &out.ObjectMeta, 0); err != nil { return err } out.Secret = in.Secret if in.AdditionalSecrets != nil { in, out := &in.AdditionalSecrets, &out.AdditionalSecrets *out = make([]string, len(*in)) copy(*out, *in) } else { out.AdditionalSecrets = nil } out.RespondWithChallenges = in.RespondWithChallenges if in.RedirectURIs != nil { in, out := &in.RedirectURIs, &out.RedirectURIs *out = make([]string, len(*in)) copy(*out, *in) } else { out.RedirectURIs = nil } if in.ScopeRestrictions != nil { in, out := &in.ScopeRestrictions, &out.ScopeRestrictions *out = make([]oauth_api.ScopeRestriction, len(*in)) for i := range *in { if err := Convert_v1_ScopeRestriction_To_api_ScopeRestriction(&(*in)[i], &(*out)[i], s); err != nil { return err } } } else { out.ScopeRestrictions = nil } return nil }