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  }