@@ -3,11 +3,8 @@ package client
33import (
44 "encoding/json"
55
6- "github.com/golang/protobuf/ptypes"
76 "github.com/pkg/errors"
87
9- "github.com/longhorn/backupstore"
10-
118 rpc "github.com/longhorn/longhorn-instance-manager/pkg/imrpc"
129)
1310
@@ -164,196 +161,3 @@ func (c *ProxyClient) BackupRestoreStatus(serviceAddress string) (status map[str
164161 }
165162 return status , nil
166163}
167-
168- func (c * ProxyClient ) BackupGet (destURL string , envs []string ) (info * EngineBackupInfo , err error ) {
169- input := map [string ]string {
170- "destURL" : destURL ,
171- }
172- if err := validateProxyMethodParameters (input ); err != nil {
173- return nil , errors .Wrap (err , "failed to get backup" )
174- }
175-
176- defer func () {
177- err = errors .Wrapf (err , "%v failed to get backup" , c .getProxyErrorPrefix (destURL ))
178- }()
179-
180- req := & rpc.EngineBackupGetRequest {
181- Envs : envs ,
182- DestUrl : destURL ,
183- }
184- recv , err := c .service .BackupGet (getContextWithGRPCTimeout (c .ctx ), req )
185- if err != nil {
186- return nil , err
187- }
188-
189- return parseBackup (recv .Backup ), nil
190- }
191-
192- func (c * ProxyClient ) BackupVolumeGet (destURL string , envs []string ) (info * EngineBackupVolumeInfo , err error ) {
193- input := map [string ]string {
194- "destURL" : destURL ,
195- }
196- if err := validateProxyMethodParameters (input ); err != nil {
197- return nil , errors .Wrap (err , "failed to get backup volume" )
198- }
199-
200- defer func () {
201- err = errors .Wrapf (err , "%v failed to get backup volume" , c .getProxyErrorPrefix (destURL ))
202- }()
203-
204- req := & rpc.EngineBackupVolumeGetRequest {
205- Envs : envs ,
206- DestUrl : destURL ,
207- }
208- recv , err := c .service .BackupVolumeGet (getContextWithGRPCTimeout (c .ctx ), req )
209- if err != nil {
210- return nil , err
211- }
212-
213- info = & EngineBackupVolumeInfo {
214- Name : recv .Volume .Name ,
215- Size : recv .Volume .Size ,
216- Labels : recv .Volume .Labels ,
217- Created : recv .Volume .Created ,
218- LastBackupName : recv .Volume .LastBackupName ,
219- LastBackupAt : recv .Volume .LastBackupAt ,
220- DataStored : recv .Volume .DataStored ,
221- Messages : recv .Volume .Messages ,
222- Backups : parseBackups (recv .Volume .Backups ),
223- BackingImageName : recv .Volume .BackingImageName ,
224- BackingImageChecksum : recv .Volume .BackingImageChecksum ,
225- }
226- return info , nil
227- }
228-
229- func (c * ProxyClient ) BackupVolumeList (destURL , volumeName string , volumeOnly bool , envs []string ) (info map [string ]* EngineBackupVolumeInfo , err error ) {
230- input := map [string ]string {
231- "destURL" : destURL ,
232- }
233- if err := validateProxyMethodParameters (input ); err != nil {
234- return nil , errors .Wrap (err , "failed to list backup for volumes" )
235- }
236-
237- defer func () {
238- if volumeName == "" {
239- err = errors .Wrapf (err , "%v failed to list backup for volumes" , c .getProxyErrorPrefix (destURL ))
240- } else {
241- err = errors .Wrapf (err , "%v failed to list backup for volume %v" , c .getProxyErrorPrefix (destURL ), volumeName )
242- }
243- }()
244-
245- req := & rpc.EngineBackupVolumeListRequest {
246- Envs : envs ,
247- DestUrl : destURL ,
248- VolumeName : volumeName ,
249- VolumeOnly : volumeOnly ,
250- }
251- recv , err := c .service .BackupVolumeList (getContextWithGRPCTimeout (c .ctx ), req )
252- if err != nil {
253- return nil , err
254- }
255-
256- info = map [string ]* EngineBackupVolumeInfo {}
257- for k , v := range recv .Volumes {
258- info [k ] = & EngineBackupVolumeInfo {
259- Name : v .Name ,
260- Size : v .Size ,
261- Labels : v .Labels ,
262- Created : v .Created ,
263- LastBackupName : v .LastBackupName ,
264- LastBackupAt : v .LastBackupAt ,
265- DataStored : v .DataStored ,
266- Messages : v .Messages ,
267- Backups : parseBackups (v .Backups ),
268- BackingImageName : v .BackingImageName ,
269- BackingImageChecksum : v .BackingImageChecksum ,
270- }
271- }
272- return info , nil
273- }
274-
275- func parseBackups (in map [string ]* rpc.EngineBackupInfo ) (out map [string ]* EngineBackupInfo ) {
276- out = map [string ]* EngineBackupInfo {}
277- for k , v := range in {
278- out [k ] = parseBackup (v )
279- }
280- return out
281- }
282-
283- func parseBackup (in * rpc.EngineBackupInfo ) (out * EngineBackupInfo ) {
284- return & EngineBackupInfo {
285- Name : in .Name ,
286- URL : in .Url ,
287- SnapshotName : in .SnapshotName ,
288- SnapshotCreated : in .SnapshotCreated ,
289- Created : in .Created ,
290- Size : in .Size ,
291- Labels : in .Labels ,
292- IsIncremental : in .IsIncremental ,
293- VolumeName : in .VolumeName ,
294- VolumeSize : in .VolumeSize ,
295- VolumeCreated : in .VolumeCreated ,
296- VolumeBackingImageName : in .VolumeBackingImageName ,
297- Messages : in .Messages ,
298- }
299- }
300-
301- func (c * ProxyClient ) BackupConfigMetaGet (destURL string , envs []string ) (meta * backupstore.ConfigMetadata , err error ) {
302- input := map [string ]string {
303- "destURL" : destURL ,
304- }
305- if err := validateProxyMethodParameters (input ); err != nil {
306- return nil , errors .Wrap (err , "failed to get backup config metadata" )
307- }
308-
309- defer func () {
310- err = errors .Wrapf (err , "%v failed to get backup config metadata" , c .getProxyErrorPrefix (destURL ))
311- }()
312-
313- req := & rpc.EngineBackupConfigMetaGetRequest {
314- Envs : envs ,
315- DestUrl : destURL ,
316- }
317- recv , err := c .service .BackupConfigMetaGet (getContextWithGRPCTimeout (c .ctx ), req )
318- if err != nil {
319- return nil , err
320- }
321-
322- ts , err := ptypes .Timestamp (recv .ModificationTime )
323- if err != nil {
324- return nil , err
325- }
326-
327- return & backupstore.ConfigMetadata {
328- ModificationTime : ts ,
329- }, nil
330- }
331-
332- func (c * ProxyClient ) BackupRemove (destURL , volumeName string , envs []string ) (err error ) {
333- input := map [string ]string {
334- "destURL" : destURL ,
335- }
336- if err := validateProxyMethodParameters (input ); err != nil {
337- return errors .Wrap (err , "failed to remove backup" )
338- }
339-
340- defer func () {
341- if volumeName == "" {
342- err = errors .Wrapf (err , "%v failed to remove backup" , c .getProxyErrorPrefix (destURL ))
343- } else {
344- err = errors .Wrapf (err , "%v failed to remove backup for volume %v" , c .getProxyErrorPrefix (destURL ), volumeName )
345- }
346- }()
347-
348- req := & rpc.EngineBackupRemoveRequest {
349- Envs : envs ,
350- DestUrl : destURL ,
351- VolumeName : volumeName ,
352- }
353- _ , err = c .service .BackupRemove (getContextWithGRPCTimeout (c .ctx ), req )
354- if err != nil {
355- return err
356- }
357-
358- return nil
359- }
0 commit comments