/
resourcequotastatus_resolver.go
36 lines (29 loc) · 1.3 KB
/
resourcequotastatus_resolver.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package k8s
import (
"context"
"github.com/golang/glog"
"github.com/kyma-project/kyma/components/console-backend-service/internal/domain/k8s/pretty"
"github.com/kyma-project/kyma/components/console-backend-service/internal/gqlerror"
"github.com/kyma-project/kyma/components/console-backend-service/internal/gqlschema"
"github.com/pkg/errors"
)
//go:generate mockery -name=resourceQuotaStatusChecker -output=automock -outpkg=automock -case=underscore
type resourceQuotaStatusChecker interface {
CheckResourceQuotaStatus(namespace string) (gqlschema.ResourceQuotasStatus, error)
}
func newResourceQuotaStatusResolver(checker resourceQuotaStatusChecker) *resourceQuotaStatusResolver {
return &resourceQuotaStatusResolver{
statusChecker: checker,
}
}
type resourceQuotaStatusResolver struct {
statusChecker resourceQuotaStatusChecker
}
func (r *resourceQuotaStatusResolver) ResourceQuotasStatus(ctx context.Context, namespace string) (gqlschema.ResourceQuotasStatus, error) {
exceeded, err := r.statusChecker.CheckResourceQuotaStatus(namespace)
if err != nil {
glog.Error(errors.Wrapf(err, "while getting %s [namespace: %s]", pretty.ResourceQuotaStatus, namespace))
return gqlschema.ResourceQuotasStatus{}, gqlerror.New(err, pretty.ResourceQuotaStatus, gqlerror.WithNamespace(namespace))
}
return exceeded, nil
}