2013-12-13 00:38:34 -05:00
|
|
|
package googlecompute
|
|
|
|
|
|
|
|
// DriverMock is a Driver implementation that is a mocked out so that
|
|
|
|
// it can be used for tests.
|
|
|
|
type DriverMock struct {
|
2014-12-09 11:42:33 -05:00
|
|
|
ImageExistsName string
|
|
|
|
ImageExistsResult bool
|
|
|
|
|
2016-05-24 20:13:36 -04:00
|
|
|
CreateImageName string
|
|
|
|
CreateImageDesc string
|
|
|
|
CreateImageFamily string
|
|
|
|
CreateImageZone string
|
|
|
|
CreateImageDisk string
|
|
|
|
CreateImageProjectId string
|
|
|
|
CreateImageSizeGb int64
|
|
|
|
CreateImageErrCh <-chan error
|
|
|
|
CreateImageResultCh <-chan Image
|
2013-12-13 22:03:10 -05:00
|
|
|
|
2013-12-13 22:07:10 -05:00
|
|
|
DeleteImageName string
|
|
|
|
DeleteImageErrCh <-chan error
|
|
|
|
|
2013-12-13 01:34:47 -05:00
|
|
|
DeleteInstanceZone string
|
|
|
|
DeleteInstanceName string
|
|
|
|
DeleteInstanceErrCh <-chan error
|
|
|
|
DeleteInstanceErr error
|
|
|
|
|
2014-11-24 11:36:14 -05:00
|
|
|
DeleteDiskZone string
|
|
|
|
DeleteDiskName string
|
|
|
|
DeleteDiskErrCh <-chan error
|
|
|
|
DeleteDiskErr error
|
|
|
|
|
2013-12-13 16:01:28 -05:00
|
|
|
GetNatIPZone string
|
|
|
|
GetNatIPName string
|
|
|
|
GetNatIPResult string
|
|
|
|
GetNatIPErr error
|
|
|
|
|
2015-05-29 17:50:11 -04:00
|
|
|
GetInternalIPZone string
|
|
|
|
GetInternalIPName string
|
|
|
|
GetInternalIPResult string
|
|
|
|
GetInternalIPErr error
|
2016-05-24 20:13:36 -04:00
|
|
|
|
|
|
|
GetSerialPortOutputZone string
|
|
|
|
GetSerialPortOutputName string
|
|
|
|
GetSerialPortOutputResult string
|
|
|
|
GetSerialPortOutputErr error
|
2015-05-29 17:50:11 -04:00
|
|
|
|
2013-12-13 00:38:34 -05:00
|
|
|
RunInstanceConfig *InstanceConfig
|
|
|
|
RunInstanceErrCh <-chan error
|
|
|
|
RunInstanceErr error
|
2013-12-13 16:01:28 -05:00
|
|
|
|
|
|
|
WaitForInstanceState string
|
|
|
|
WaitForInstanceZone string
|
|
|
|
WaitForInstanceName string
|
|
|
|
WaitForInstanceErrCh <-chan error
|
2013-12-13 00:38:34 -05:00
|
|
|
}
|
|
|
|
|
2014-12-09 11:42:33 -05:00
|
|
|
func (d *DriverMock) ImageExists(name string) bool {
|
|
|
|
d.ImageExistsName = name
|
|
|
|
return d.ImageExistsResult
|
|
|
|
}
|
|
|
|
|
2016-05-24 20:13:36 -04:00
|
|
|
func (d *DriverMock) CreateImage(name, description, family, zone, disk string) (<-chan Image, <-chan error) {
|
2013-12-13 22:03:10 -05:00
|
|
|
d.CreateImageName = name
|
|
|
|
d.CreateImageDesc = description
|
2016-05-06 07:43:39 -04:00
|
|
|
d.CreateImageFamily = family
|
2014-11-24 11:36:14 -05:00
|
|
|
d.CreateImageZone = zone
|
|
|
|
d.CreateImageDisk = disk
|
2016-05-24 20:13:36 -04:00
|
|
|
if d.CreateImageSizeGb == 0 {
|
|
|
|
d.CreateImageSizeGb = 10
|
|
|
|
}
|
|
|
|
if d.CreateImageProjectId == "" {
|
|
|
|
d.CreateImageProjectId = "test"
|
|
|
|
}
|
2013-12-13 22:03:10 -05:00
|
|
|
|
2016-05-24 20:13:36 -04:00
|
|
|
resultCh := d.CreateImageResultCh
|
2013-12-13 22:03:10 -05:00
|
|
|
if resultCh == nil {
|
2016-05-24 20:13:36 -04:00
|
|
|
ch := make(chan Image, 1)
|
|
|
|
ch <- Image{
|
|
|
|
Name: name,
|
|
|
|
ProjectId: d.CreateImageProjectId,
|
|
|
|
SizeGb: d.CreateImageSizeGb,
|
|
|
|
}
|
2013-12-13 22:03:10 -05:00
|
|
|
close(ch)
|
|
|
|
resultCh = ch
|
|
|
|
}
|
|
|
|
|
2016-05-24 20:13:36 -04:00
|
|
|
errCh := d.CreateImageErrCh
|
|
|
|
if errCh == nil {
|
|
|
|
ch := make(chan error)
|
|
|
|
close(ch)
|
|
|
|
errCh = ch
|
|
|
|
}
|
|
|
|
|
|
|
|
return resultCh, errCh
|
2013-12-13 22:07:10 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
func (d *DriverMock) DeleteImage(name string) <-chan error {
|
|
|
|
d.DeleteImageName = name
|
|
|
|
|
|
|
|
resultCh := d.DeleteImageErrCh
|
|
|
|
if resultCh == nil {
|
|
|
|
ch := make(chan error)
|
|
|
|
close(ch)
|
|
|
|
resultCh = ch
|
|
|
|
}
|
|
|
|
|
2013-12-13 22:03:10 -05:00
|
|
|
return resultCh
|
|
|
|
}
|
|
|
|
|
2013-12-13 01:34:47 -05:00
|
|
|
func (d *DriverMock) DeleteInstance(zone, name string) (<-chan error, error) {
|
|
|
|
d.DeleteInstanceZone = zone
|
|
|
|
d.DeleteInstanceName = name
|
|
|
|
|
|
|
|
resultCh := d.DeleteInstanceErrCh
|
|
|
|
if resultCh == nil {
|
|
|
|
ch := make(chan error)
|
|
|
|
close(ch)
|
|
|
|
resultCh = ch
|
|
|
|
}
|
|
|
|
|
|
|
|
return resultCh, d.DeleteInstanceErr
|
|
|
|
}
|
|
|
|
|
2014-11-24 11:36:14 -05:00
|
|
|
func (d *DriverMock) DeleteDisk(zone, name string) (<-chan error, error) {
|
|
|
|
d.DeleteDiskZone = zone
|
|
|
|
d.DeleteDiskName = name
|
|
|
|
|
|
|
|
resultCh := d.DeleteDiskErrCh
|
|
|
|
if resultCh == nil {
|
|
|
|
ch := make(chan error)
|
|
|
|
close(ch)
|
|
|
|
resultCh = ch
|
|
|
|
}
|
|
|
|
|
|
|
|
return resultCh, d.DeleteDiskErr
|
|
|
|
}
|
|
|
|
|
2013-12-13 16:01:28 -05:00
|
|
|
func (d *DriverMock) GetNatIP(zone, name string) (string, error) {
|
|
|
|
d.GetNatIPZone = zone
|
|
|
|
d.GetNatIPName = name
|
|
|
|
return d.GetNatIPResult, d.GetNatIPErr
|
|
|
|
}
|
|
|
|
|
2015-05-29 17:50:11 -04:00
|
|
|
func (d *DriverMock) GetInternalIP(zone, name string) (string, error) {
|
|
|
|
d.GetInternalIPZone = zone
|
|
|
|
d.GetInternalIPName = name
|
|
|
|
return d.GetInternalIPResult, d.GetInternalIPErr
|
|
|
|
}
|
|
|
|
|
2016-05-24 20:13:36 -04:00
|
|
|
func (d *DriverMock) GetSerialPortOutput(zone, name string) (string, error) {
|
|
|
|
d.GetSerialPortOutputZone = zone
|
|
|
|
d.GetSerialPortOutputName = name
|
|
|
|
return d.GetSerialPortOutputResult, d.GetSerialPortOutputErr
|
|
|
|
}
|
|
|
|
|
2013-12-13 00:38:34 -05:00
|
|
|
func (d *DriverMock) RunInstance(c *InstanceConfig) (<-chan error, error) {
|
|
|
|
d.RunInstanceConfig = c
|
|
|
|
|
|
|
|
resultCh := d.RunInstanceErrCh
|
|
|
|
if resultCh == nil {
|
|
|
|
ch := make(chan error)
|
|
|
|
close(ch)
|
|
|
|
resultCh = ch
|
|
|
|
}
|
|
|
|
|
|
|
|
return resultCh, d.RunInstanceErr
|
|
|
|
}
|
2013-12-13 16:01:28 -05:00
|
|
|
|
|
|
|
func (d *DriverMock) WaitForInstance(state, zone, name string) <-chan error {
|
|
|
|
d.WaitForInstanceState = state
|
|
|
|
d.WaitForInstanceZone = zone
|
|
|
|
d.WaitForInstanceName = name
|
|
|
|
|
|
|
|
resultCh := d.WaitForInstanceErrCh
|
|
|
|
if resultCh == nil {
|
|
|
|
ch := make(chan error)
|
|
|
|
close(ch)
|
|
|
|
resultCh = ch
|
|
|
|
}
|
|
|
|
|
|
|
|
return resultCh
|
|
|
|
}
|