Skip to content

Commit 2936e4b

Browse files
author
Jeff McCormick
committed
refactor kube api calls into kubeapi package
1 parent 52de8fd commit 2936e4b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+1818
-1040
lines changed

apiserver/backupservice/backupimpl.go

Lines changed: 25 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -20,40 +20,31 @@ import (
2020
crv1 "github.com/crunchydata/postgres-operator/apis/cr/v1"
2121
"github.com/crunchydata/postgres-operator/apiserver"
2222
msgs "github.com/crunchydata/postgres-operator/apiservermsgs"
23+
"github.com/crunchydata/postgres-operator/kubeapi"
2324
"github.com/crunchydata/postgres-operator/util"
2425
"github.com/spf13/viper"
25-
kerrors "k8s.io/apimachinery/pkg/api/errors"
2626
meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
27-
"k8s.io/apimachinery/pkg/labels"
2827
)
2928

3029
// ShowBackup ...
3130
func ShowBackup(name string) msgs.ShowBackupResponse {
31+
var err error
3232
response := msgs.ShowBackupResponse{}
3333
response.Status = msgs.Status{Code: msgs.Ok, Msg: ""}
3434

3535
if name == "all" {
3636
//get a list of all backups
37-
err := apiserver.RESTClient.Get().
38-
Resource(crv1.PgbackupResourcePlural).
39-
Namespace(apiserver.Namespace).
40-
Do().Into(&response.BackupList)
37+
err = kubeapi.Getpgbackups(apiserver.RESTClient, &response.BackupList, apiserver.Namespace)
4138
if err != nil {
42-
log.Error("error getting list of backups" + err.Error())
4339
response.Status.Code = msgs.Error
4440
response.Status.Msg = err.Error()
4541
return response
4642
}
47-
log.Debug("backups found len is %d\n", len(response.BackupList.Items))
43+
log.Debugf("backups found len is %d\n", len(response.BackupList.Items))
4844
} else {
4945
backup := crv1.Pgbackup{}
50-
err := apiserver.RESTClient.Get().
51-
Resource(crv1.PgbackupResourcePlural).
52-
Namespace(apiserver.Namespace).
53-
Name(name).
54-
Do().Into(&backup)
46+
_, err := kubeapi.Getpgbackup(apiserver.RESTClient, &backup, name, apiserver.Namespace)
5547
if err != nil {
56-
log.Error("error getting backup" + err.Error())
5748
response.Status.Code = msgs.Error
5849
response.Status.Msg = err.Error()
5950
return response
@@ -76,25 +67,14 @@ func DeleteBackup(backupName string) msgs.DeleteBackupResponse {
7667
var err error
7768

7869
if backupName == "all" {
79-
err = apiserver.RESTClient.Delete().
80-
Resource(crv1.PgbackupResourcePlural).
81-
Namespace(apiserver.Namespace).
82-
Do().
83-
Error()
70+
err = kubeapi.DeleteAllpgbackup(apiserver.RESTClient, apiserver.Namespace)
8471
resp.Results = append(resp.Results, "all")
8572
} else {
86-
err = apiserver.RESTClient.Delete().
87-
Resource(crv1.PgbackupResourcePlural).
88-
Namespace(apiserver.Namespace).
89-
Name(backupName).
90-
Do().
91-
Error()
73+
err = kubeapi.Deletepgbackup(apiserver.RESTClient, backupName, apiserver.Namespace)
9274
resp.Results = append(resp.Results, backupName)
9375
}
9476

9577
if err != nil {
96-
log.Error("error deleting pgbackup ")
97-
log.Error(err.Error())
9878
resp.Status.Code = msgs.Error
9979
resp.Status.Msg = err.Error()
10080
}
@@ -108,7 +88,6 @@ func DeleteBackup(backupName string) msgs.DeleteBackupResponse {
10888
// pgo backup all
10989
// pgo backup --selector=name=mycluster
11090
func CreateBackup(request *msgs.CreateBackupRequest) msgs.CreateBackupResponse {
111-
var err error
11291
resp := msgs.CreateBackupResponse{}
11392
resp.Status.Code = msgs.Ok
11493
resp.Status.Msg = ""
@@ -129,27 +108,10 @@ func CreateBackup(request *msgs.CreateBackupRequest) msgs.CreateBackupResponse {
129108
if request.Selector != "" {
130109
//use the selector instead of an argument list to filter on
131110

132-
myselector, err := labels.Parse(request.Selector)
133-
if err != nil {
134-
log.Error(err)
135-
resp.Status.Code = msgs.Error
136-
resp.Status.Msg = err.Error()
137-
return resp
138-
}
139-
140-
log.Debug("myselector is " + myselector.String())
141-
142-
//get the clusters list
143111
clusterList := crv1.PgclusterList{}
144-
err = apiserver.RESTClient.Get().
145-
Resource(crv1.PgclusterResourcePlural).
146-
Namespace(apiserver.Namespace).
147-
Param("labelSelector", myselector.String()).
148-
//LabelsSelectorParam(myselector).
149-
Do().
150-
Into(&clusterList)
112+
113+
err := kubeapi.GetpgclustersBySelector(apiserver.RESTClient, &clusterList, request.Selector, apiserver.Namespace)
151114
if err != nil {
152-
log.Error("error getting cluster list" + err.Error())
153115
resp.Status.Code = msgs.Error
154116
resp.Status.Msg = err.Error()
155117
return resp
@@ -177,27 +139,19 @@ func CreateBackup(request *msgs.CreateBackupRequest) msgs.CreateBackupResponse {
177139
result := crv1.Pgbackup{}
178140

179141
// error if it already exists
180-
err = apiserver.RESTClient.Get().
181-
Resource(crv1.PgbackupResourcePlural).
182-
Namespace(apiserver.Namespace).
183-
Name(arg).
184-
Do().
185-
Into(&result)
186-
if err == nil {
142+
found, err := kubeapi.Getpgbackup(apiserver.RESTClient, &result, arg, apiserver.Namespace)
143+
if !found {
144+
log.Debug("pgbackup " + arg + " not found so we create it")
145+
} else if err != nil {
146+
resp.Results = append(resp.Results, "error getting pgbackup for "+arg)
147+
break
148+
} else {
187149
log.Debug("pgbackup " + arg + " was found so we recreate it")
188150
dels := make([]string, 1)
189151
dels[0] = arg
190152
DeleteBackup(arg)
191-
} else if kerrors.IsNotFound(err) {
192-
log.Debug("pgbackup " + arg + " not found so we create it")
193-
//msg := "pgbackup " + arg + " not found so we will create it"
194-
//resp.Results = append(resp.Results, "pgbackup "+msg)
195-
} else {
196-
log.Error("error getting pgbackup " + arg)
197-
log.Error(err.Error())
198-
resp.Results = append(resp.Results, "error getting pgbackup for "+arg)
199-
break
200153
}
154+
201155
// Create an instance of our CRD
202156
newInstance, err = getBackupParams(arg, request.StorageConfig)
203157
if err != nil {
@@ -206,14 +160,9 @@ func CreateBackup(request *msgs.CreateBackupRequest) msgs.CreateBackupResponse {
206160
resp.Results = append(resp.Results, msg)
207161
break
208162
}
209-
err = apiserver.RESTClient.Post().
210-
Resource(crv1.PgbackupResourcePlural).
211-
Namespace(apiserver.Namespace).
212-
Body(newInstance).
213-
Do().Into(&result)
163+
164+
err = kubeapi.Createpgbackup(apiserver.RESTClient, newInstance, apiserver.Namespace)
214165
if err != nil {
215-
log.Error("error in creating Pgbackup CRD instance")
216-
log.Error(err.Error())
217166
resp.Status.Code = msgs.Error
218167
resp.Status.Msg = err.Error()
219168
return resp
@@ -244,25 +193,15 @@ func getBackupParams(name, storageConfig string) (*crv1.Pgbackup, error) {
244193
spec.BackupPort = "5432"
245194

246195
cluster := crv1.Pgcluster{}
247-
err = apiserver.RESTClient.Get().
248-
Resource(crv1.PgclusterResourcePlural).
249-
Namespace(apiserver.Namespace).
250-
Name(name).
251-
Do().
252-
Into(&cluster)
196+
_, err = kubeapi.Getpgcluster(apiserver.RESTClient, &cluster, name, apiserver.Namespace)
253197
if err == nil {
254198
spec.BackupHost = cluster.Spec.Name
255199
spec.BackupPass, err = util.GetSecretPassword(apiserver.Clientset, cluster.Spec.Name, crv1.PrimarySecretSuffix, apiserver.Namespace)
256200
if err != nil {
257201
return newInstance, err
258202
}
259203
spec.BackupPort = cluster.Spec.Port
260-
} else if kerrors.IsNotFound(err) {
261-
log.Debug(name + " is not a cluster")
262-
return newInstance, err
263204
} else {
264-
log.Error("error getting pgcluster " + name)
265-
log.Error(err.Error())
266205
return newInstance, err
267206
}
268207

@@ -277,21 +216,12 @@ func getBackupParams(name, storageConfig string) (*crv1.Pgbackup, error) {
277216

278217
func RemoveBackupJob(name string) {
279218

280-
options := meta_v1.GetOptions{}
281-
_, err := apiserver.Clientset.Batch().Jobs(apiserver.Namespace).Get(name, options)
282-
if kerrors.IsNotFound(err) {
283-
log.Debug("Job " + err.Error())
284-
285-
return
286-
}
287-
if err != nil {
288-
log.Error("error getting Job " + err.Error())
219+
_, found := kubeapi.GetJob(apiserver.Clientset, name, apiserver.Namespace)
220+
if !found {
289221
return
290222
}
223+
291224
log.Debugf("found backup job %s will remove\n", name)
292-
err = apiserver.Clientset.Batch().Jobs(apiserver.Namespace).Delete(name, &meta_v1.DeleteOptions{})
293-
if err != nil {
294-
log.Error(err)
295-
}
296-
log.Debug("deleted existing job " + name)
225+
226+
kubeapi.DeleteJob(apiserver.Clientset, name, apiserver.Namespace)
297227
}

0 commit comments

Comments
 (0)