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 }