some improvements

This commit is contained in:
ston1th 2020-06-01 13:59:16 +02:00
commit d6c9b69b9c
3 changed files with 24 additions and 3 deletions

View file

@ -6,6 +6,15 @@ import (
"strings"
)
type IPConfigs []*IPConfig
func (c IPConfigs) Get(index int) *IPConfig {
if len(c)-1 >= index {
return c[index]
}
return nil
}
type IPConfig struct {
IPv4CIDR string
IPv4Gateway string

View file

@ -7,6 +7,15 @@ import (
"strings"
)
type NetworkDevices []*NetworkDevice
func (c NetworkDevice) Get(index int) *NetworkDevice {
if len(c)-1 >= index {
return c[index]
}
return nil
}
type NetworkDevice struct {
Type string
MACAddress string

View file

@ -16,8 +16,8 @@ type Server struct {
Node string
Status ServerStatus `json:"status"`
Resources Resources
NetDevices []*NetworkDevice
IPConfig []*IPConfig
NetDevices NetworkDevices
IPConfig IPConfigs
Nameserver Nameserver
SearchDomain string
UserData *UserData
@ -217,7 +217,7 @@ func (o ServerTemplateOpts) body() httpbody {
return body
}
func (c *ServerClient) CreateFromTemplate(ctx context.Context, opts ServerTemplateOpts) (t *Task, err error) {
func (c *ServerClient) CreateFromTemplate(ctx context.Context, opts ServerTemplateOpts) (t *Task, url string, err error) {
err = opts.Validate()
if err != nil {
return
@ -234,6 +234,9 @@ func (c *ServerClient) CreateFromTemplate(ctx context.Context, opts ServerTempla
body["newid"] = nextid
if tempnode != opts.TargetNode {
body["target"] = opts.TargetNode
url = NewURL(opts.TargetNode, nextid)
} else {
url = NewURL(tempnode, nextid)
}
req, err := c.client.NewRequest(ctx, "GET", fmt.Sprintf("/nodes/%s/qemu/%s/clone", tempnode, id), body.Reader())
if err != nil {