Skip to content

Instantly share code, notes, and snippets.

@riethm
Created October 3, 2016 14:47
Show Gist options
  • Save riethm/45709913248c59c5d9f990e845b59752 to your computer and use it in GitHub Desktop.
Save riethm/45709913248c59c5d9f990e845b59752 to your computer and use it in GitHub Desktop.
Order hourly bare metal using a preset
func orderHourlyBM(sess *session.Session) {
hwservice := services.GetHardwareService(sess)
//hwservice.GetCreateObjectOptions()
template := datatypes.Hardware{}
template.Datacenter = &datatypes.Location{Name: sl.String("dal01")}
template.Hostname = sl.String("mike-bm-test")
template.Domain = sl.String("softlayer.com")
template.HourlyBillingFlag = sl.Bool(true)
template.NetworkComponents = []datatypes.Network_Component{{MaxSpeed: sl.Int(1000)}}
template.OperatingSystemReferenceCode = sl.String("UBUNTU_16_64")
//template.FixedConfigurationPreset = &opts.FixedConfigurationPresets[0].Preset
template.FixedConfigurationPreset = &datatypes.Product_Package_Preset{KeyName: sl.String("S1270_8GB_2X1TBSATA_NORAID")}
productOrder, err := hwservice.GenerateOrderTemplate(&template)
if err != nil {
fmt.Println(err)
return
}
order, err := services.GetProductOrderService(sess).VerifyOrder(&productOrder)
if err != nil {
fmt.Println(err)
return
}
receipt, err := services.GetProductOrderService(sess).PlaceOrder(&order, sl.Bool(false))
fmt.Printf("order ID: %d\n", receipt.PlacedOrder.Id)
}
@renier
Copy link

renier commented Oct 3, 2016

@riethm Don't need to go through the product service to order the BM with a preset. You can use the Hardware service, and pass the template straight to service.CreateObject().

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment