diff --git a/builder/oracle/classic/step_create_instance.go b/builder/oracle/classic/step_create_instance.go index 6678979bf..4b9d33c0a 100644 --- a/builder/oracle/classic/step_create_instance.go +++ b/builder/oracle/classic/step_create_instance.go @@ -1,34 +1,48 @@ package classic import ( + "fmt" + "github.com/hashicorp/packer/packer" "github.com/mitchellh/multistep" ) -type stepCreateIPReservation struct{} +type stepCreateInstance struct{} func (s *stepCreateIPReservation) Run(state multistep.StateBag) multistep.StepAction { ui := state.Get("ui").(packer.Ui) ui.Say("Creating Instance...") const endpoint_path = "/launchplan/" // POST // master-instance.json - - // { - // "instances": [{ - // "shape": "oc3", - // "sshkeys": ["/Compute-mydomain/user@example.com/my_sshkey"], - // "name": "Compute-mydomain/user@example.com/master-instance", - // "label": "master-instance", - // "imagelist": "/Compute-mydomain/user@example.com/Ubuntu.16.04-LTS.amd64.20170330", - // "networking": { - // "eth0": { - // "nat": "ipreservation:/Compute-mydomain/user@example.com/master-instance-ip" - // } - // } - // }] - // } + ` + { + "instances": [{ + "shape": "oc3", + "sshkeys": ["/Compute-mydomain/user@example.com/my_sshkey"], + "name": "Compute-mydomain/user@example.com/master-instance", + "label": "master-instance", + "imagelist": "/Compute-mydomain/user@example.com/Ubuntu.16.04-LTS.amd64.20170330", + "networking": { + "eth0": { + "nat": "ipreservation:/Compute-mydomain/user@example.com/master-instance-ip" + } + } + }] + } + ` // command line call // $ opc compute launch-plans add --request-body=./master-instance.json // ... + instanceID, err := client.CreateInstance(publicKey) + if err != nil { + err = fmt.Errorf("Problem creating instance: %s", err) + ui.Error(err.Error()) + state.Put("error", err) + return multistep.ActionHalt + } + + state.Put("instance_id", instanceID) + + ui.Say(fmt.Sprintf("Created instance (%s).", instanceID)) } diff --git a/builder/oracle/classic/step_instance_info.go b/builder/oracle/classic/step_instance_info.go index a2f935a99..9ec01cdbc 100644 --- a/builder/oracle/classic/step_instance_info.go +++ b/builder/oracle/classic/step_instance_info.go @@ -5,20 +5,14 @@ import ( "github.com/mitchellh/multistep" ) -type stepCreateIPReservation struct{} +type stepInstanceInfo struct{} func (s *stepInstanceInfo) Run(state multistep.StateBag) multistep.StepAction { - ui := state.Get("ui").(packer.Ui) ui.Say("Getting Instance Info...") - endpoint_path := "/instance/%s", instanceName // GET - - // $ opc compute ip-reservations add \ - // /Compute-mydomain/user@example.com/master-instance-ip \ - // /oracle/public/ippool + ui := state.Get("ui").(packer.Ui) + instanceID := state.Get("instance_id").(string) + endpoint_path := "/instance/%s", instanceID // GET - // account /Compute-mydomain/default - // ip 129.144.27.172 - // name /Compute-mydomain/user@example.com/master-instance-ip - // ... + // https://docs.oracle.com/en/cloud/iaas/compute-iaas-cloud/stcsa/op-instance-%7Bname%7D-get.html }