// Creates a new VirtualMachine func (v *VirtualMachine) Create() ([]interface{}, error) { templateObj := template.TemplateReqs{TemplateName: v.TemplateName, T: v.T} defer v.T.Client.Close() XMLtemplate, err := templateObj.Get() if err != nil { return nil, err } XMLtemplate[0].Template.Cpu = v.Cpu XMLtemplate[0].Template.VCpu = v.VCpu XMLtemplate[0].Template.Memory = v.Memory XMLtemplate[0].Template.Disk.Image = v.Image XMLtemplate[0].Template.Disk.Size = v.HDD XMLtemplate[0].Template.Context.Accounts_id = v.ContextMap[ACCOUNTS_ID] XMLtemplate[0].Template.Context.Platform_id = v.ContextMap[PLATFORM_ID] XMLtemplate[0].Template.Context.Assembly_id = v.ContextMap[ASSEMBLY_ID] XMLtemplate[0].Template.Context.Assemblies_id = v.ContextMap[ASSEMBLIES_ID] XMLtemplate[0].Template.Context.SSH_Public_key = v.ContextMap[SSH_PUBLIC_KEY] finalXML := template.UserTemplates{} finalXML.UserTemplate = XMLtemplate finalData, _ := xml.Marshal(finalXML.UserTemplate[0].Template) data := string(finalData) args := []interface{}{v.T.Key, finalXML.UserTemplate[0].Id, v.Name, false, data} res, err := v.T.Call(TEMPLATE_INSTANTIATE, args) if err != nil { return nil, err } return res, nil }
// Creates a new VirtualMachine func (v *VirtualMachine) Create() (interface{}, error) { templateObj := template.TemplateReqs{TemplateName: v.TemplateName, T: v.T} defer v.T.Client.Close() XMLtemplate, err := templateObj.Get() if err != nil { return nil, err } XMLtemplate[0].Template.Cpu = v.Cpu XMLtemplate[0].Template.VCpu = v.VCpu XMLtemplate[0].Template.Memory = v.Memory XMLtemplate[0].Template.Disk.Image = v.Image XMLtemplate[0].Template.Disk.Size = v.HDD // XMLtemplate[0].Template.Cpu_cost = v.CpuCost // XMLtemplate[0].Template.Memory_cost = v.MemoryCost // XMLtemplate[0].Template.Disk_cost = v.HDDCost XMLtemplate[0].Template.Context.Accounts_id = v.ContextMap[ACCOUNTS_ID] XMLtemplate[0].Template.Context.Platform_id = v.ContextMap[PLATFORM_ID] XMLtemplate[0].Template.Context.Assembly_id = v.ContextMap[ASSEMBLY_ID] XMLtemplate[0].Template.Context.Assemblies_id = v.ContextMap[ASSEMBLIES_ID] XMLtemplate[0].Template.Context.Org_id = v.ContextMap[ORG_ID] XMLtemplate[0].Template.Context.SSH_Public_key = v.ContextMap[SSH_PUBLIC_KEY] XMLtemplate[0].Template.Sched_requirments = "CLUSTER_ID=\"" + v.ClusterId + "\"" if len(v.Vnets) > 0 { XMLtemplate[0].Template.Nic = XMLtemplate[0].Template.Nic[:0] for _, v := range v.Vnets { net := &template.NIC{Network: v, Network_uname: "oneadmin"} XMLtemplate[0].Template.Nic = append(XMLtemplate[0].Template.Nic, net) } } finalXML := template.UserTemplates{} finalXML.UserTemplate = XMLtemplate finalData, _ := xml.Marshal(finalXML.UserTemplate[0].Template) data := string(finalData) args := []interface{}{v.T.Key, finalXML.UserTemplate[0].Id, v.Name, false, data} res, err := v.T.Call(TEMPLATE_INSTANTIATE, args) if err != nil { return nil, err } return res, nil }