github.com/rothwerx/packer@v0.9.0/builder/googlecompute/driver_mock.go (about)

     1  package googlecompute
     2  
     3  // DriverMock is a Driver implementation that is a mocked out so that
     4  // it can be used for tests.
     5  type DriverMock struct {
     6  	ImageExistsName   string
     7  	ImageExistsResult bool
     8  
     9  	CreateImageName  string
    10  	CreateImageDesc  string
    11  	CreateImageZone  string
    12  	CreateImageDisk  string
    13  	CreateImageErrCh <-chan error
    14  
    15  	DeleteImageName  string
    16  	DeleteImageErrCh <-chan error
    17  
    18  	DeleteInstanceZone  string
    19  	DeleteInstanceName  string
    20  	DeleteInstanceErrCh <-chan error
    21  	DeleteInstanceErr   error
    22  
    23  	DeleteDiskZone  string
    24  	DeleteDiskName  string
    25  	DeleteDiskErrCh <-chan error
    26  	DeleteDiskErr   error
    27  
    28  	GetNatIPZone   string
    29  	GetNatIPName   string
    30  	GetNatIPResult string
    31  	GetNatIPErr    error
    32  
    33  	GetInternalIPZone   string
    34  	GetInternalIPName   string
    35  	GetInternalIPResult string
    36  	GetInternalIPErr    error
    37  
    38  	RunInstanceConfig *InstanceConfig
    39  	RunInstanceErrCh  <-chan error
    40  	RunInstanceErr    error
    41  
    42  	WaitForInstanceState string
    43  	WaitForInstanceZone  string
    44  	WaitForInstanceName  string
    45  	WaitForInstanceErrCh <-chan error
    46  }
    47  
    48  func (d *DriverMock) ImageExists(name string) bool {
    49  	d.ImageExistsName = name
    50  	return d.ImageExistsResult
    51  }
    52  
    53  func (d *DriverMock) CreateImage(name, description, zone, disk string) <-chan error {
    54  	d.CreateImageName = name
    55  	d.CreateImageDesc = description
    56  	d.CreateImageZone = zone
    57  	d.CreateImageDisk = disk
    58  
    59  	resultCh := d.CreateImageErrCh
    60  	if resultCh == nil {
    61  		ch := make(chan error)
    62  		close(ch)
    63  		resultCh = ch
    64  	}
    65  
    66  	return resultCh
    67  }
    68  
    69  func (d *DriverMock) DeleteImage(name string) <-chan error {
    70  	d.DeleteImageName = name
    71  
    72  	resultCh := d.DeleteImageErrCh
    73  	if resultCh == nil {
    74  		ch := make(chan error)
    75  		close(ch)
    76  		resultCh = ch
    77  	}
    78  
    79  	return resultCh
    80  }
    81  
    82  func (d *DriverMock) DeleteInstance(zone, name string) (<-chan error, error) {
    83  	d.DeleteInstanceZone = zone
    84  	d.DeleteInstanceName = name
    85  
    86  	resultCh := d.DeleteInstanceErrCh
    87  	if resultCh == nil {
    88  		ch := make(chan error)
    89  		close(ch)
    90  		resultCh = ch
    91  	}
    92  
    93  	return resultCh, d.DeleteInstanceErr
    94  }
    95  
    96  func (d *DriverMock) DeleteDisk(zone, name string) (<-chan error, error) {
    97  	d.DeleteDiskZone = zone
    98  	d.DeleteDiskName = name
    99  
   100  	resultCh := d.DeleteDiskErrCh
   101  	if resultCh == nil {
   102  		ch := make(chan error)
   103  		close(ch)
   104  		resultCh = ch
   105  	}
   106  
   107  	return resultCh, d.DeleteDiskErr
   108  }
   109  
   110  func (d *DriverMock) GetNatIP(zone, name string) (string, error) {
   111  	d.GetNatIPZone = zone
   112  	d.GetNatIPName = name
   113  	return d.GetNatIPResult, d.GetNatIPErr
   114  }
   115  
   116  func (d *DriverMock) GetInternalIP(zone, name string) (string, error) {
   117  	d.GetInternalIPZone = zone
   118  	d.GetInternalIPName = name
   119  	return d.GetInternalIPResult, d.GetInternalIPErr
   120  }
   121  
   122  func (d *DriverMock) RunInstance(c *InstanceConfig) (<-chan error, error) {
   123  	d.RunInstanceConfig = c
   124  
   125  	resultCh := d.RunInstanceErrCh
   126  	if resultCh == nil {
   127  		ch := make(chan error)
   128  		close(ch)
   129  		resultCh = ch
   130  	}
   131  
   132  	return resultCh, d.RunInstanceErr
   133  }
   134  
   135  func (d *DriverMock) WaitForInstance(state, zone, name string) <-chan error {
   136  	d.WaitForInstanceState = state
   137  	d.WaitForInstanceZone = zone
   138  	d.WaitForInstanceName = name
   139  
   140  	resultCh := d.WaitForInstanceErrCh
   141  	if resultCh == nil {
   142  		ch := make(chan error)
   143  		close(ch)
   144  		resultCh = ch
   145  	}
   146  
   147  	return resultCh
   148  }