github.com/axw/juju@v0.0.0-20161005053422-4bd6544d08d4/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/storage"
    11  )
    12  
    13  // VolumeSource is an implementation of storage.VolumeSource, suitable for
    14  // testing. Each method's default behaviour may be overridden by setting
    15  // the corresponding Func field.
    16  type VolumeSource struct {
    17  	testing.Stub
    18  
    19  	CreateVolumesFunc        func([]storage.VolumeParams) ([]storage.CreateVolumesResult, error)
    20  	ListVolumesFunc          func() ([]string, error)
    21  	DescribeVolumesFunc      func([]string) ([]storage.DescribeVolumesResult, error)
    22  	DestroyVolumesFunc       func([]string) ([]error, error)
    23  	ValidateVolumeParamsFunc func(storage.VolumeParams) error
    24  	AttachVolumesFunc        func([]storage.VolumeAttachmentParams) ([]storage.AttachVolumesResult, error)
    25  	DetachVolumesFunc        func([]storage.VolumeAttachmentParams) ([]error, error)
    26  }
    27  
    28  // CreateVolumes is defined on storage.VolumeSource.
    29  func (s *VolumeSource) CreateVolumes(params []storage.VolumeParams) ([]storage.CreateVolumesResult, error) {
    30  	s.MethodCall(s, "CreateVolumes", params)
    31  	if s.CreateVolumesFunc != nil {
    32  		return s.CreateVolumesFunc(params)
    33  	}
    34  	return nil, errors.NotImplementedf("CreateVolumes")
    35  }
    36  
    37  // ListVolumes is defined on storage.VolumeSource.
    38  func (s *VolumeSource) ListVolumes() ([]string, error) {
    39  	s.MethodCall(s, "ListVolumes")
    40  	if s.ListVolumesFunc != nil {
    41  		return s.ListVolumesFunc()
    42  	}
    43  	return nil, nil
    44  }
    45  
    46  // DescribeVolumes is defined on storage.VolumeSource.
    47  func (s *VolumeSource) DescribeVolumes(volIds []string) ([]storage.DescribeVolumesResult, error) {
    48  	s.MethodCall(s, "DescribeVolumes", volIds)
    49  	if s.DescribeVolumesFunc != nil {
    50  		return s.DescribeVolumesFunc(volIds)
    51  	}
    52  	return nil, errors.NotImplementedf("DescribeVolumes")
    53  }
    54  
    55  // DestroyVolumes is defined on storage.VolumeSource.
    56  func (s *VolumeSource) DestroyVolumes(volIds []string) ([]error, error) {
    57  	s.MethodCall(s, "DestroyVolumes", volIds)
    58  	if s.DestroyVolumesFunc != nil {
    59  		return s.DestroyVolumesFunc(volIds)
    60  	}
    61  	return nil, errors.NotImplementedf("DestroyVolumes")
    62  }
    63  
    64  // ValidateVolumeParams is defined on storage.VolumeSource.
    65  func (s *VolumeSource) ValidateVolumeParams(params storage.VolumeParams) error {
    66  	s.MethodCall(s, "ValidateVolumeParams", params)
    67  	if s.ValidateVolumeParamsFunc != nil {
    68  		return s.ValidateVolumeParamsFunc(params)
    69  	}
    70  	return nil
    71  }
    72  
    73  // AttachVolumes is defined on storage.VolumeSource.
    74  func (s *VolumeSource) AttachVolumes(params []storage.VolumeAttachmentParams) ([]storage.AttachVolumesResult, error) {
    75  	s.MethodCall(s, "AttachVolumes", params)
    76  	if s.AttachVolumesFunc != nil {
    77  		return s.AttachVolumesFunc(params)
    78  	}
    79  	return nil, errors.NotImplementedf("AttachVolumes")
    80  }
    81  
    82  // DetachVolumes is defined on storage.VolumeSource.
    83  func (s *VolumeSource) DetachVolumes(params []storage.VolumeAttachmentParams) ([]error, error) {
    84  	s.MethodCall(s, "DetachVolumes", params)
    85  	if s.DetachVolumesFunc != nil {
    86  		return s.DetachVolumesFunc(params)
    87  	}
    88  	return nil, errors.NotImplementedf("DetachVolumes")
    89  }