github.com/mmcquillan/packer@v1.1.1-0.20171009221028-c85cf0483a5d/builder/oracle/oci/driver_mock.go (about)

     1  package oci
     2  
     3  import (
     4  	client "github.com/hashicorp/packer/builder/oracle/oci/client"
     5  )
     6  
     7  // driverMock implements the Driver interface and communicates with Oracle
     8  // OCI.
     9  type driverMock struct {
    10  	CreateInstanceID  string
    11  	CreateInstanceErr error
    12  
    13  	CreateImageID  string
    14  	CreateImageErr error
    15  
    16  	DeleteImageID  string
    17  	DeleteImageErr error
    18  
    19  	GetInstanceIPErr error
    20  
    21  	TerminateInstanceID  string
    22  	TerminateInstanceErr error
    23  
    24  	WaitForImageCreationErr error
    25  
    26  	WaitForInstanceStateErr error
    27  }
    28  
    29  // CreateInstance creates a new compute instance.
    30  func (d *driverMock) CreateInstance(publicKey string) (string, error) {
    31  	if d.CreateInstanceErr != nil {
    32  		return "", d.CreateInstanceErr
    33  	}
    34  
    35  	d.CreateInstanceID = "ocid1..."
    36  
    37  	return d.CreateInstanceID, nil
    38  }
    39  
    40  // CreateImage creates a new custom image.
    41  func (d *driverMock) CreateImage(id string) (client.Image, error) {
    42  	if d.CreateImageErr != nil {
    43  		return client.Image{}, d.CreateImageErr
    44  	}
    45  	d.CreateImageID = id
    46  	return client.Image{ID: id}, nil
    47  }
    48  
    49  // DeleteImage mocks deleting a custom image.
    50  func (d *driverMock) DeleteImage(id string) error {
    51  	if d.DeleteImageErr != nil {
    52  		return d.DeleteImageErr
    53  	}
    54  
    55  	d.DeleteImageID = id
    56  
    57  	return nil
    58  }
    59  
    60  // GetInstanceIP returns the public IP corresponding to the given instance id.
    61  func (d *driverMock) GetInstanceIP(id string) (string, error) {
    62  	if d.GetInstanceIPErr != nil {
    63  		return "", d.GetInstanceIPErr
    64  	}
    65  	return "ip", nil
    66  }
    67  
    68  // TerminateInstance terminates a compute instance.
    69  func (d *driverMock) TerminateInstance(id string) error {
    70  	if d.TerminateInstanceErr != nil {
    71  		return d.TerminateInstanceErr
    72  	}
    73  
    74  	d.TerminateInstanceID = id
    75  
    76  	return nil
    77  }
    78  
    79  // WaitForImageCreation waits for a provisioning custom image to reach the
    80  // "AVAILABLE" state.
    81  func (d *driverMock) WaitForImageCreation(id string) error {
    82  	return d.WaitForImageCreationErr
    83  }
    84  
    85  // WaitForInstanceState waits for an instance to reach the a given terminal
    86  // state.
    87  func (d *driverMock) WaitForInstanceState(id string, waitStates []string, terminalState string) error {
    88  	return d.WaitForInstanceStateErr
    89  }