diff --git a/cmd/controller-manager/app/server.go b/cmd/controller-manager/app/server.go index 233dc6bb8372867e0fb28fe3da2914f83fe9fe5c..da93bf1311e442a7a803a235615d572720b5abbf 100644 --- a/cmd/controller-manager/app/server.go +++ b/cmd/controller-manager/app/server.go @@ -228,7 +228,7 @@ func run(s *options.KubeSphereControllerManagerOptions, stopCh <-chan struct{}) klog.Fatal("Unable to create helm category controller") } - if !s.OpenPitrixOptions.IsEmpty() { + if !s.OpenPitrixOptions.AppStoreConfIsEmpty() { storageClient, err := s3.NewS3Client(s.OpenPitrixOptions.S3Options) if err != nil { klog.Fatalf("failed to connect to s3, please check openpitrix s3 service status, error: %v", err) diff --git a/pkg/apiserver/config/config.go b/pkg/apiserver/config/config.go index 4ec842b42257e2d60a808caa66e8798c1396feb8..4954270c6be72ae71adb0a7d11ea4ca9b4cbfc6b 100644 --- a/pkg/apiserver/config/config.go +++ b/pkg/apiserver/config/config.go @@ -200,11 +200,14 @@ func (conf *Config) ToMap() map[string]bool { } if name == "openpitrix" { - if conf.OpenPitrixOptions.IsEmpty() { + // openpitrix is always true + result[name] = true + if conf.OpenPitrixOptions == nil { result["openpitrix.appstore"] = false } else { - result["openpitrix.appstore"] = true + result["openpitrix.appstore"] = conf.OpenPitrixOptions.AppStoreConfIsEmpty() } + continue } if c.Field(i).IsNil() { @@ -240,10 +243,6 @@ func (conf *Config) stripEmptyOptions() { conf.LdapOptions = nil } - if conf.OpenPitrixOptions != nil && conf.OpenPitrixOptions.IsEmpty() { - conf.OpenPitrixOptions = nil - } - if conf.NetworkOptions != nil && conf.NetworkOptions.IsEmpty() { conf.NetworkOptions = nil } diff --git a/pkg/kapis/openpitrix/v1/register.go b/pkg/kapis/openpitrix/v1/register.go index 2c15a39db802394eb1a2599a4bb2f3f210cd24da..80ddc5e9ed1cae182cbef7a6297aa64198e18c27 100644 --- a/pkg/kapis/openpitrix/v1/register.go +++ b/pkg/kapis/openpitrix/v1/register.go @@ -455,6 +455,21 @@ func AddToContainer(c *restful.Container, ksInfomrers informers.InformerFactory, DataFormat("limit=%d,page=%d"). DefaultValue("limit=10,page=1"))) + webservice.Route(webservice.GET("/workspaces/{workspace}/applications"). + To(handler.ListApplications). + Returns(http.StatusOK, api.StatusOK, models.PageableResponse{}). + Metadata(restfulspec.KeyOpenAPITags, []string{constants.NamespaceResourcesTag}). + Doc("List all applications within the specified workspace"). + Param(webservice.QueryParameter(params.ConditionsParam, "query conditions, connect multiple conditions with commas, equal symbol for exact query, wave symbol for fuzzy query e.g. name~a"). + Required(false). + DataFormat("key=value,key~value"). + DefaultValue("")). + Param(webservice.PathParameter("workspace", "the workspace of the project.").Required(true)). + Param(webservice.QueryParameter(params.PagingParam, "paging query, e.g. limit=100,page=1"). + Required(false). + DataFormat("limit=%d,page=%d"). + DefaultValue("limit=10,page=1"))) + webservice.Route(webservice.GET("/workspaces/{workspace}/clusters/{cluster}/applications"). To(handler.ListApplications). Returns(http.StatusOK, api.StatusOK, models.PageableResponse{}). @@ -464,7 +479,8 @@ func AddToContainer(c *restful.Container, ksInfomrers informers.InformerFactory, Required(false). DataFormat("key=value,key~value"). DefaultValue("")). - Param(webservice.PathParameter("namespace", "the name of the project.").Required(true)). + Param(webservice.PathParameter("workspace", "the workspace of the project.").Required(true)). + Param(webservice.PathParameter("cluster", "the cluster of the project.").Required(true)). Param(webservice.QueryParameter(params.PagingParam, "paging query, e.g. limit=100,page=1"). Required(false). DataFormat("limit=%d,page=%d"). @@ -479,7 +495,7 @@ func AddToContainer(c *restful.Container, ksInfomrers informers.InformerFactory, Required(false). DataFormat("key=value,key~value"). DefaultValue("")). - Param(webservice.PathParameter("namespace", "the name of the project.").Required(true)). + Param(webservice.PathParameter("cluster", "the cluster of the project.").Required(true)). Param(webservice.QueryParameter(params.PagingParam, "paging query, e.g. limit=100,page=1"). Required(false). DataFormat("limit=%d,page=%d"). @@ -494,6 +510,7 @@ func AddToContainer(c *restful.Container, ksInfomrers informers.InformerFactory, Required(false). DataFormat("key=value,key~value"). DefaultValue("")). + Param(webservice.PathParameter("workspace", "the workspace of the project.").Required(true)). Param(webservice.PathParameter("cluster", "the name of the cluster.").Required(true)). Param(webservice.PathParameter("namespace", "the name of the project").Required(true)). Param(webservice.QueryParameter(params.PagingParam, "paging query, e.g. limit=100,page=1"). diff --git a/pkg/simple/client/openpitrix/options.go b/pkg/simple/client/openpitrix/options.go index f6d09681f59d1da977e028365af2223e455dbbfc..132fc33d8edf2f8615bbce60c2071377caffa463 100644 --- a/pkg/simple/client/openpitrix/options.go +++ b/pkg/simple/client/openpitrix/options.go @@ -39,7 +39,7 @@ func (s *Options) Validate() []error { return errors } -func (s *Options) IsEmpty() bool { +func (s *Options) AppStoreConfIsEmpty() bool { return s.S3Options == nil || s.S3Options.Endpoint == "" }