@@ -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 ...
3130func 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
11090func 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
278217func 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