func CreateOrUpdateDefaultOAuthClients(masterPublicAddr string, assetPublicAddresses []string, clientRegistry clientregistry.Registry) { clientsToEnsure := []*oauthapi.OAuthClient{ { ObjectMeta: kapi.ObjectMeta{ Name: OSWebConsoleClientBase.Name, }, Secret: OSWebConsoleClientBase.Secret, RespondWithChallenges: OSWebConsoleClientBase.RespondWithChallenges, RedirectURIs: assetPublicAddresses, }, { ObjectMeta: kapi.ObjectMeta{ Name: OSBrowserClientBase.Name, }, Secret: OSBrowserClientBase.Secret, RespondWithChallenges: OSBrowserClientBase.RespondWithChallenges, RedirectURIs: []string{masterPublicAddr + path.Join(OpenShiftOAuthAPIPrefix, tokenrequest.DisplayTokenEndpoint)}, }, { ObjectMeta: kapi.ObjectMeta{ Name: OSCliClientBase.Name, }, Secret: OSCliClientBase.Secret, RespondWithChallenges: OSCliClientBase.RespondWithChallenges, RedirectURIs: []string{masterPublicAddr + path.Join(OpenShiftOAuthAPIPrefix, tokenrequest.DisplayTokenEndpoint)}, }, } ctx := kapi.NewContext() for _, currClient := range clientsToEnsure { existing, err := clientRegistry.GetClient(ctx, currClient.Name) if err == nil { // Update the existing resource version currClient.ResourceVersion = existing.ResourceVersion // Add in any redirects from the existing one // This preserves any additional customized redirects in the default clients redirects := util.NewStringSet(currClient.RedirectURIs...) for _, redirect := range existing.RedirectURIs { if !redirects.Has(redirect) { currClient.RedirectURIs = append(currClient.RedirectURIs, redirect) redirects.Insert(redirect) } } if _, err := clientRegistry.UpdateClient(ctx, currClient); err != nil { glog.Errorf("Error updating OAuthClient %v: %v", currClient.Name, err) } } else if kerrs.IsNotFound(err) { if _, err = clientRegistry.CreateClient(ctx, currClient); err != nil { glog.Errorf("Error creating OAuthClient %v: %v", currClient.Name, err) } } else { glog.Errorf("Error getting OAuthClient %v: %v", currClient.Name, err) } } }
func createClient(t *testing.T, clientRegistry clientregistry.Registry, client *oauthapi.OAuthClient) { if _, err := clientRegistry.CreateClient(kapi.NewContext(), client); err != nil { t.Errorf("Error creating client: %v due to %v\n", client, err) } }