func (c *MasterConfig) InstallProtectedAPI(container *restful.Container) []string { // initialize OpenShift API storage := c.GetRestStorage() messages := []string{} legacyAPIVersions := []string{} currentAPIVersions := []string{} if configapi.HasOpenShiftAPILevel(c.Options, OpenShiftAPIV1Beta3) { if err := c.api_v1beta3(storage).InstallREST(container); err != nil { glog.Fatalf("Unable to initialize v1beta3 API: %v", err) } messages = append(messages, fmt.Sprintf("Started Origin API at %%s%s", OpenShiftAPIPrefixV1Beta3)) legacyAPIVersions = append(legacyAPIVersions, OpenShiftAPIV1Beta3) } if configapi.HasOpenShiftAPILevel(c.Options, OpenShiftAPIV1) { if err := c.api_v1(storage).InstallREST(container); err != nil { glog.Fatalf("Unable to initialize v1 API: %v", err) } messages = append(messages, fmt.Sprintf("Started Origin API at %%s%s", OpenShiftAPIPrefixV1)) currentAPIVersions = append(currentAPIVersions, OpenShiftAPIV1) } var root *restful.WebService for _, service := range container.RegisteredWebServices() { switch service.RootPath() { case "/": root = service case OpenShiftAPIPrefixV1Beta3: service.Doc("OpenShift REST API, version v1beta3").ApiVersion("v1beta3") case OpenShiftAPIPrefixV1: service.Doc("OpenShift REST API, version v1").ApiVersion("v1") } } if root == nil { root = new(restful.WebService) container.Add(root) } initAPIVersionRoute(root, LegacyOpenShiftAPIPrefix, legacyAPIVersions...) initAPIVersionRoute(root, OpenShiftAPIPrefix, currentAPIVersions...) initControllerRoutes(root, "/controllers", c.Options.Controllers != configapi.ControllersDisabled, c.ControllerPlug) initHealthCheckRoute(root, "/healthz") initReadinessCheckRoute(root, "/healthz/ready", c.ProjectAuthorizationCache.ReadyForAccess) return messages }
func (c *MasterConfig) InstallProtectedAPI(container *restful.Container) ([]string, error) { // initialize OpenShift API storage := c.GetRestStorage() messages := []string{} legacyAPIVersions := []string{} currentAPIVersions := []string{} if configapi.HasOpenShiftAPILevel(c.Options, OpenShiftAPIV1) { if err := c.apiLegacyV1(storage).InstallREST(container); err != nil { glog.Fatalf("Unable to initialize v1 API: %v", err) } messages = append(messages, fmt.Sprintf("Started Origin API at %%s%s", OpenShiftAPIPrefixV1)) currentAPIVersions = append(currentAPIVersions, OpenShiftAPIV1) } var root *restful.WebService for _, service := range container.RegisteredWebServices() { switch service.RootPath() { case "/": root = service case OpenShiftAPIPrefixV1: service.Doc("OpenShift REST API, version v1").ApiVersion("v1") } } if root == nil { root = new(restful.WebService) container.Add(root) } // The old API prefix must continue to return 200 (with an empty versions // list) for backwards compatibility, even though we won't service any other // requests through the route. Take care when considering whether to delete // this route. initAPIVersionRoute(root, LegacyOpenShiftAPIPrefix, legacyAPIVersions...) initAPIVersionRoute(root, OpenShiftAPIPrefix, currentAPIVersions...) initControllerRoutes(root, "/controllers", c.Options.Controllers != configapi.ControllersDisabled, c.ControllerPlug) initHealthCheckRoute(root, "/healthz") initReadinessCheckRoute(root, "/healthz/ready", c.ProjectAuthorizationCache.ReadyForAccess) initVersionRoute(container, "/version/openshift") // Set up OAuth metadata only if we are configured to use OAuth if c.Options.OAuthConfig != nil { initOAuthAuthorizationServerMetadataRoute(container, oauthMetadataEndpoint, c.Options.OAuthConfig.MasterPublicURL) } return messages, nil }
func (c *MasterConfig) InstallProtectedAPI(apiContainer *genericmux.APIContainer) ([]string, error) { // initialize OpenShift API storage := c.GetRestStorage() messages := []string{} legacyAPIVersions := []string{} currentAPIVersions := []string{} if configapi.HasOpenShiftAPILevel(c.Options, v1.SchemeGroupVersion.Version) { if err := c.apiLegacyV1(storage).InstallREST(apiContainer.Container); err != nil { glog.Fatalf("Unable to initialize v1 API: %v", err) } messages = append(messages, fmt.Sprintf("Started Origin API at %%s%s/%s", api.Prefix, v1.SchemeGroupVersion.Version)) currentAPIVersions = append(currentAPIVersions, v1.SchemeGroupVersion.Version) } // fix API doc string for _, service := range apiContainer.Container.RegisteredWebServices() { if service.RootPath() == api.Prefix+"/"+v1.SchemeGroupVersion.Version { service.Doc("OpenShift REST API, version v1").ApiVersion("v1") } } // The old API prefix must continue to return 200 (with an empty versions // list) for backwards compatibility, even though we won't service any other // requests through the route. Take care when considering whether to delete // this route. initAPIVersionRoute(apiContainer, api.LegacyPrefix, legacyAPIVersions...) initAPIVersionRoute(apiContainer, api.Prefix, currentAPIVersions...) initControllerRoutes(apiContainer, "/controllers", c.Options.Controllers != configapi.ControllersDisabled, c.ControllerPlug) // TODO(sttts): use upstream healthz checks for the /healthz/ready route initReadinessCheckRoute(apiContainer, "/healthz/ready", c.ProjectAuthorizationCache.ReadyForAccess) // TODO(sttts): use upstream version route initVersionRoute(apiContainer.Container, "/version/openshift") // Set up OAuth metadata only if we are configured to use OAuth if c.Options.OAuthConfig != nil { initOAuthAuthorizationServerMetadataRoute(apiContainer, oauthMetadataEndpoint, c.Options.OAuthConfig.MasterPublicURL) } return messages, nil }