github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/storage/provider/dummy/volumesource.go (about) 1 // Copyright 2015 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package dummy 5 6 import ( 7 "github.com/juju/errors" 8 "github.com/juju/testing" 9 10 "github.com/juju/juju/environs/context" 11 "github.com/juju/juju/storage" 12 ) 13 14 // VolumeSource is an implementation of storage.VolumeSource, suitable for 15 // testing. Each method's default behaviour may be overridden by setting 16 // the corresponding Func field. 17 type VolumeSource struct { 18 testing.Stub 19 20 CreateVolumesFunc func(context.ProviderCallContext, []storage.VolumeParams) ([]storage.CreateVolumesResult, error) 21 ListVolumesFunc func(context.ProviderCallContext) ([]string, error) 22 DescribeVolumesFunc func(context.ProviderCallContext, []string) ([]storage.DescribeVolumesResult, error) 23 DestroyVolumesFunc func(context.ProviderCallContext, []string) ([]error, error) 24 ReleaseVolumesFunc func(context.ProviderCallContext, []string) ([]error, error) 25 ValidateVolumeParamsFunc func(storage.VolumeParams) error 26 AttachVolumesFunc func(context.ProviderCallContext, []storage.VolumeAttachmentParams) ([]storage.AttachVolumesResult, error) 27 DetachVolumesFunc func(context.ProviderCallContext, []storage.VolumeAttachmentParams) ([]error, error) 28 } 29 30 // CreateVolumes is defined on storage.VolumeSource. 31 func (s *VolumeSource) CreateVolumes(ctx context.ProviderCallContext, params []storage.VolumeParams) ([]storage.CreateVolumesResult, error) { 32 s.MethodCall(s, "CreateVolumes", ctx, params) 33 if s.CreateVolumesFunc != nil { 34 return s.CreateVolumesFunc(ctx, params) 35 } 36 return nil, errors.NotImplementedf("CreateVolumes") 37 } 38 39 // ListVolumes is defined on storage.VolumeSource. 40 func (s *VolumeSource) ListVolumes(ctx context.ProviderCallContext) ([]string, error) { 41 s.MethodCall(s, "ListVolumes", ctx) 42 if s.ListVolumesFunc != nil { 43 return s.ListVolumesFunc(ctx) 44 } 45 return nil, nil 46 } 47 48 // DescribeVolumes is defined on storage.VolumeSource. 49 func (s *VolumeSource) DescribeVolumes(ctx context.ProviderCallContext, volIds []string) ([]storage.DescribeVolumesResult, error) { 50 s.MethodCall(s, "DescribeVolumes", ctx, volIds) 51 if s.DescribeVolumesFunc != nil { 52 return s.DescribeVolumesFunc(ctx, volIds) 53 } 54 return nil, errors.NotImplementedf("DescribeVolumes") 55 } 56 57 // DestroyVolumes is defined on storage.VolumeSource. 58 func (s *VolumeSource) DestroyVolumes(ctx context.ProviderCallContext, volIds []string) ([]error, error) { 59 s.MethodCall(s, "DestroyVolumes", ctx, volIds) 60 if s.DestroyVolumesFunc != nil { 61 return s.DestroyVolumesFunc(ctx, volIds) 62 } 63 return nil, errors.NotImplementedf("DestroyVolumes") 64 } 65 66 // ReleaseVolumes is defined on storage.VolumeSource. 67 func (s *VolumeSource) ReleaseVolumes(ctx context.ProviderCallContext, volIds []string) ([]error, error) { 68 s.MethodCall(s, "ReleaseVolumes", ctx, volIds) 69 if s.ReleaseVolumesFunc != nil { 70 return s.ReleaseVolumesFunc(ctx, volIds) 71 } 72 return nil, errors.NotImplementedf("ReleaseVolumes") 73 } 74 75 // ValidateVolumeParams is defined on storage.VolumeSource. 76 func (s *VolumeSource) ValidateVolumeParams(params storage.VolumeParams) error { 77 s.MethodCall(s, "ValidateVolumeParams", params) 78 if s.ValidateVolumeParamsFunc != nil { 79 return s.ValidateVolumeParamsFunc(params) 80 } 81 return nil 82 } 83 84 // AttachVolumes is defined on storage.VolumeSource. 85 func (s *VolumeSource) AttachVolumes(ctx context.ProviderCallContext, params []storage.VolumeAttachmentParams) ([]storage.AttachVolumesResult, error) { 86 s.MethodCall(s, "AttachVolumes", ctx, params) 87 if s.AttachVolumesFunc != nil { 88 return s.AttachVolumesFunc(ctx, params) 89 } 90 return nil, errors.NotImplementedf("AttachVolumes") 91 } 92 93 // DetachVolumes is defined on storage.VolumeSource. 94 func (s *VolumeSource) DetachVolumes(ctx context.ProviderCallContext, params []storage.VolumeAttachmentParams) ([]error, error) { 95 s.MethodCall(s, "DetachVolumes", ctx, params) 96 if s.DetachVolumesFunc != nil { 97 return s.DetachVolumesFunc(ctx, params) 98 } 99 return nil, errors.NotImplementedf("DetachVolumes") 100 }