Skip to content

Commit

Permalink
Added helper functions to dbVersions to check for valid specs (#450)
Browse files Browse the repository at this point in the history
  • Loading branch information
the-redback authored and tamalsaha committed Oct 4, 2019
1 parent 630714c commit a728339
Show file tree
Hide file tree
Showing 9 changed files with 178 additions and 30 deletions.
32 changes: 27 additions & 5 deletions apis/catalog/v1alpha1/elasticsearch_version_helpers.go
Original file line number Diff line number Diff line change
@@ -1,30 +1,32 @@
package v1alpha1

import (
"fmt"

apiextensions "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
crdutils "kmodules.xyz/client-go/apiextensions/v1beta1"
"kubedb.dev/apimachinery/apis"
)

var _ apis.ResourceInfo = &ElasticsearchVersion{}

func (p ElasticsearchVersion) ResourceShortCode() string {
func (e ElasticsearchVersion) ResourceShortCode() string {
return ResourceCodeElasticsearchVersion
}

func (p ElasticsearchVersion) ResourceKind() string {
func (e ElasticsearchVersion) ResourceKind() string {
return ResourceKindElasticsearchVersion
}

func (p ElasticsearchVersion) ResourceSingular() string {
func (e ElasticsearchVersion) ResourceSingular() string {
return ResourceSingularElasticsearchVersion
}

func (p ElasticsearchVersion) ResourcePlural() string {
func (e ElasticsearchVersion) ResourcePlural() string {
return ResourcePluralElasticsearchVersion
}

func (p ElasticsearchVersion) CustomResourceDefinition() *apiextensions.CustomResourceDefinition {
func (e ElasticsearchVersion) CustomResourceDefinition() *apiextensions.CustomResourceDefinition {
return crdutils.NewCustomResourceDefinition(crdutils.Config{
Group: SchemeGroupVersion.Group,
Plural: ResourcePluralElasticsearchVersion,
Expand Down Expand Up @@ -71,3 +73,23 @@ func (p ElasticsearchVersion) CustomResourceDefinition() *apiextensions.CustomRe
},
})
}

func (e ElasticsearchVersion) ValidateSpecs() error {
if e.Spec.AuthPlugin == "" ||
e.Spec.Version == "" ||
e.Spec.DB.Image == "" ||
e.Spec.Tools.Image == "" ||
e.Spec.Exporter.Image == "" ||
e.Spec.InitContainer.YQImage == "" ||
e.Spec.InitContainer.Image == "" {
return fmt.Errorf(`atleast one of the following specs is not set for elasticsearchVersion "%v":
spec.authPlugin,
spec.version,
spec.db.image,
spec.tools.image,
spec.exporter.image,
spec.initContainer.yqImage,
spec.initContainer.image.`, e.Name)
}
return nil
}
26 changes: 21 additions & 5 deletions apis/catalog/v1alpha1/etcd_version_helpers.go
Original file line number Diff line number Diff line change
@@ -1,30 +1,32 @@
package v1alpha1

import (
"fmt"

apiextensions "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
crdutils "kmodules.xyz/client-go/apiextensions/v1beta1"
"kubedb.dev/apimachinery/apis"
)

var _ apis.ResourceInfo = &EtcdVersion{}

func (p EtcdVersion) ResourceShortCode() string {
func (e EtcdVersion) ResourceShortCode() string {
return ResourceCodeEtcdVersion
}

func (p EtcdVersion) ResourceKind() string {
func (e EtcdVersion) ResourceKind() string {
return ResourceKindEtcdVersion
}

func (p EtcdVersion) ResourceSingular() string {
func (e EtcdVersion) ResourceSingular() string {
return ResourceSingularEtcdVersion
}

func (p EtcdVersion) ResourcePlural() string {
func (e EtcdVersion) ResourcePlural() string {
return ResourcePluralEtcdVersion
}

func (p EtcdVersion) CustomResourceDefinition() *apiextensions.CustomResourceDefinition {
func (e EtcdVersion) CustomResourceDefinition() *apiextensions.CustomResourceDefinition {
return crdutils.NewCustomResourceDefinition(crdutils.Config{
Group: SchemeGroupVersion.Group,
Plural: ResourcePluralEtcdVersion,
Expand Down Expand Up @@ -71,3 +73,17 @@ func (p EtcdVersion) CustomResourceDefinition() *apiextensions.CustomResourceDef
},
})
}

func (e EtcdVersion) ValidateSpecs() error {
if e.Spec.Version == "" ||
e.Spec.DB.Image == "" ||
e.Spec.Tools.Image == "" ||
e.Spec.Exporter.Image == "" {
return fmt.Errorf(`atleast one of the following specs is not set for etcdVersion "%v":
spec.version,
spec.db.image,
spec.tools.image,
spec.exporter.image.`, e.Name)
}
return nil
}
24 changes: 19 additions & 5 deletions apis/catalog/v1alpha1/memcached_version_helpers.go
Original file line number Diff line number Diff line change
@@ -1,30 +1,32 @@
package v1alpha1

import (
"fmt"

apiextensions "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
crdutils "kmodules.xyz/client-go/apiextensions/v1beta1"
"kubedb.dev/apimachinery/apis"
)

var _ apis.ResourceInfo = &MemcachedVersion{}

func (p MemcachedVersion) ResourceShortCode() string {
func (m MemcachedVersion) ResourceShortCode() string {
return ResourceCodeMemcachedVersion
}

func (p MemcachedVersion) ResourceKind() string {
func (m MemcachedVersion) ResourceKind() string {
return ResourceKindMemcachedVersion
}

func (p MemcachedVersion) ResourceSingular() string {
func (m MemcachedVersion) ResourceSingular() string {
return ResourceSingularMemcachedVersion
}

func (p MemcachedVersion) ResourcePlural() string {
func (m MemcachedVersion) ResourcePlural() string {
return ResourcePluralMemcachedVersion
}

func (p MemcachedVersion) CustomResourceDefinition() *apiextensions.CustomResourceDefinition {
func (m MemcachedVersion) CustomResourceDefinition() *apiextensions.CustomResourceDefinition {
return crdutils.NewCustomResourceDefinition(crdutils.Config{
Group: SchemeGroupVersion.Group,
Plural: ResourcePluralMemcachedVersion,
Expand Down Expand Up @@ -71,3 +73,15 @@ func (p MemcachedVersion) CustomResourceDefinition() *apiextensions.CustomResour
},
})
}

func (m MemcachedVersion) ValidateSpecs() error {
if m.Spec.Version == "" ||
m.Spec.DB.Image == "" ||
m.Spec.Exporter.Image == "" {
return fmt.Errorf(`atleast one of the following specs is not set for memcachedVersion "%v":
spec.version,
spec.db.image,
spec.exporter.image,`, m.Name)
}
return nil
}
28 changes: 23 additions & 5 deletions apis/catalog/v1alpha1/mongodb_version_helpers.go
Original file line number Diff line number Diff line change
@@ -1,30 +1,32 @@
package v1alpha1

import (
"fmt"

apiextensions "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
crdutils "kmodules.xyz/client-go/apiextensions/v1beta1"
"kubedb.dev/apimachinery/apis"
)

var _ apis.ResourceInfo = &MongoDBVersion{}

func (p MongoDBVersion) ResourceShortCode() string {
func (m MongoDBVersion) ResourceShortCode() string {
return ResourceCodeMongoDBVersion
}

func (p MongoDBVersion) ResourceKind() string {
func (m MongoDBVersion) ResourceKind() string {
return ResourceKindMongoDBVersion
}

func (p MongoDBVersion) ResourceSingular() string {
func (m MongoDBVersion) ResourceSingular() string {
return ResourceSingularMongoDBVersion
}

func (p MongoDBVersion) ResourcePlural() string {
func (m MongoDBVersion) ResourcePlural() string {
return ResourcePluralMongoDBVersion
}

func (p MongoDBVersion) CustomResourceDefinition() *apiextensions.CustomResourceDefinition {
func (m MongoDBVersion) CustomResourceDefinition() *apiextensions.CustomResourceDefinition {
return crdutils.NewCustomResourceDefinition(crdutils.Config{
Group: SchemeGroupVersion.Group,
Plural: ResourcePluralMongoDBVersion,
Expand Down Expand Up @@ -71,3 +73,19 @@ func (p MongoDBVersion) CustomResourceDefinition() *apiextensions.CustomResource
},
})
}

func (m MongoDBVersion) ValidateSpecs() error {
if m.Spec.Version == "" ||
m.Spec.DB.Image == "" ||
m.Spec.Tools.Image == "" ||
m.Spec.Exporter.Image == "" ||
m.Spec.InitContainer.Image == "" {
return fmt.Errorf(`atleast one of the following specs is not set for mongodbVersion "%v":
spec.version,
spec.db.image,
spec.tools.image,
spec.exporter.image,
spec.initContainer.image.`, m.Name)
}
return nil
}
28 changes: 23 additions & 5 deletions apis/catalog/v1alpha1/mysql_version_helpers.go
Original file line number Diff line number Diff line change
@@ -1,30 +1,32 @@
package v1alpha1

import (
"fmt"

apiextensions "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
crdutils "kmodules.xyz/client-go/apiextensions/v1beta1"
"kubedb.dev/apimachinery/apis"
)

var _ apis.ResourceInfo = &MySQLVersion{}

func (p MySQLVersion) ResourceShortCode() string {
func (m MySQLVersion) ResourceShortCode() string {
return ResourceCodeMySQLVersion
}

func (p MySQLVersion) ResourceKind() string {
func (m MySQLVersion) ResourceKind() string {
return ResourceKindMySQLVersion
}

func (p MySQLVersion) ResourceSingular() string {
func (m MySQLVersion) ResourceSingular() string {
return ResourceSingularMySQLVersion
}

func (p MySQLVersion) ResourcePlural() string {
func (m MySQLVersion) ResourcePlural() string {
return ResourcePluralMySQLVersion
}

func (p MySQLVersion) CustomResourceDefinition() *apiextensions.CustomResourceDefinition {
func (m MySQLVersion) CustomResourceDefinition() *apiextensions.CustomResourceDefinition {
return crdutils.NewCustomResourceDefinition(crdutils.Config{
Group: SchemeGroupVersion.Group,
Plural: ResourcePluralMySQLVersion,
Expand Down Expand Up @@ -71,3 +73,19 @@ func (p MySQLVersion) CustomResourceDefinition() *apiextensions.CustomResourceDe
},
})
}

func (m MySQLVersion) ValidateSpecs() error {
if m.Spec.Version == "" ||
m.Spec.DB.Image == "" ||
m.Spec.Tools.Image == "" ||
m.Spec.Exporter.Image == "" ||
m.Spec.InitContainer.Image == "" {
return fmt.Errorf(`atleast one of the following specs is not set for mysqlVersion "%v":
spec.version,
spec.db.image,
spec.tools.image,
spec.exporter.image,
spec.initContainer.image.`, m.Name)
}
return nil
}
16 changes: 16 additions & 0 deletions apis/catalog/v1alpha1/perconaxtradb_version_helpers.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package v1alpha1

import (
"fmt"

apiextensions "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
crdutils "kmodules.xyz/client-go/apiextensions/v1beta1"
"kubedb.dev/apimachinery/apis"
Expand Down Expand Up @@ -71,3 +73,17 @@ func (p PerconaXtraDBVersion) CustomResourceDefinition() *apiextensions.CustomRe
},
})
}

func (p PerconaXtraDBVersion) ValidateSpecs() error {
if p.Spec.Version == "" ||
p.Spec.DB.Image == "" ||
p.Spec.Exporter.Image == "" ||
p.Spec.InitContainer.Image == "" {
return fmt.Errorf(`atleast one of the following specs is not set for perconaxtradbversion "%v":
spec.version,
spec.db.image,
spec.exporter.image,
spec.initContainer.image.`, p.Name)
}
return nil
}
14 changes: 14 additions & 0 deletions apis/catalog/v1alpha1/pgbouncer_version_helpers.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package v1alpha1

import (
"fmt"

apiextensions "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
crdutils "kmodules.xyz/client-go/apiextensions/v1beta1"
"kubedb.dev/apimachinery/apis"
Expand Down Expand Up @@ -71,3 +73,15 @@ func (p PgBouncerVersion) CustomResourceDefinition() *apiextensions.CustomResour
},
})
}

func (p PgBouncerVersion) ValidateSpecs() error {
if p.Spec.Version == "" ||
p.Spec.Exporter.Image == "" ||
p.Spec.Server.Image == "" {
return fmt.Errorf(`atleast one of the following specs is not set for pgbouncerversion "%v":
spec.version,
spec.server.image,
spec.exporter.image.`, p.Name)
}
return nil
}
16 changes: 16 additions & 0 deletions apis/catalog/v1alpha1/postgres_version_helpers.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package v1alpha1

import (
"fmt"

apiextensions "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
crdutils "kmodules.xyz/client-go/apiextensions/v1beta1"
"kubedb.dev/apimachinery/apis"
Expand Down Expand Up @@ -71,3 +73,17 @@ func (p PostgresVersion) CustomResourceDefinition() *apiextensions.CustomResourc
},
})
}

func (p PostgresVersion) ValidateSpecs() error {
if p.Spec.Version == "" ||
p.Spec.DB.Image == "" ||
p.Spec.Tools.Image == "" ||
p.Spec.Exporter.Image == "" {
return fmt.Errorf(`atleast one of the following specs is not set for postgresVersion "%v":
spec.version,
spec.db.image,
spec.tools.image,
spec.exporter.image.`, p.Name)
}
return nil
}
Loading

0 comments on commit a728339

Please sign in to comment.